Navigation systems and methods for wheeled objects

ABSTRACT

A navigation system uses a dead reckoning method to estimate an object&#39;s present position relative to one or more prior positions. In some embodiments, the dead reckoning method determines a change in position from the object&#39;s heading and speed during an elapsed time interval. In embodiments suitable for use with wheeled objects, the dead reckoning method determines the change in position by measuring the heading and the amount of wheel rotation. Some or all of the components of the navigation system may be disposed within a wheel, such as a wheel of a shopping cart.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.11/277,027, filed Mar. 20, 2006, titled NAVIGATION SYSTEMS AND METHODSFOR WHEELED OBJECTS, which claims the benefit under 35 U.S.C. §119(e) ofU.S. Provisional Patent Application Nos. 60/663,147, 60/663,327, and60/663,195, all filed on Mar. 18, 2005, the disclosures of which arehereby incorporated by reference. This application further incorporatesby reference the following: U.S. patent application Ser. No. 11/277,029,filed Mar. 20, 2006, titled POWER GENERATION SYSTEMS AND METHODS FORWHEELED OBJECTS (hereinafter “the Power Generation patent application”),and U.S. patent application Ser. No. 11/277,016, filed Mar. 20, 2006,titled TWO-WAY COMMUNICATION SYSTEM FOR TRACKING LOCATIONS AND STATUSESOF WHEELED VEHICLES (hereinafter “the Two-Way Communication patentapplication”).

BACKGROUND

1. Field

The present disclosure relates to determining the location of an objectfrom its speed and direction of travel. More particularly, the presentdisclosure relates to determining the position of a wheeled object frommeasurements of the wheel's orientation and rotation.

2. Description of the Related Art

It is often desirable to track the position of an object as it movesthroughout a tracking area. A facility such as, for example, a retailstore, a hospital, an airport, or a warehouse, may wish to monitor thelocation of objects such as vehicles, carts, carriers, transports, andthe like. The facility can use object location information, for example,to track inventory movements, to improve access to and retrieval of theobjects, to identify clustering, queuing, or traffic patterns, and/or toprevent misplacement, loss, or theft of the objects. In one example, aretail store may wish to track the position of shopping carts so as toprevent the carts from being removed or stolen from a bounded area, suchas a parking lot, or to ensure that a shopping cart has passed through acheckout lane before exiting the store. In another example, a facilitymay wish to map the architectural configuration of a building by using awheeled object to measure positions of various landmarks.

A variety of methods have been used to determine the position of anobject in a tracking area. For example, a radio frequency (RF)transmitter or tag can be attached to the object, and one or morereceivers in the tracking area can monitor tag transmissions todetermine object position. However, such methods are disadvantageous ifthe tracking area is large, which requires installation of manyreceivers, or if the tracking area contains structures that attenuatethe tag transmissions. Other methods utilize the Global PositioningSystem (GPS) to determine position. However, GPS methods can fail if theGPS signal is blocked or if the visibility of satellites is interrupted.Further, both GPS systems and RF tag and receiver systems can beexpensive and difficult to implement.

SUMMARY

A navigation system uses a dead reckoning method to estimate an object'spresent position relative to one or more prior positions. In someembodiments, the dead reckoning method determines a change in positionfrom the object's heading and speed during an elapsed time interval. Inembodiments suitable for use with wheeled objects, the dead reckoningmethod determines the change in position by measuring the heading andthe amount of wheel rotation. In a preferred embodiment, the heading isdetermined with reference to the Earth's magnetic field by disposingmagnetic sensors in or on the object. Error correction and positionreset procedures may be implemented to reduce accumulated navigationalerror. In preferred embodiments, some or all of the navigation system isdisposed within a wheel of the object. In certain embodiments, thenavigation system determines whether the object has exited a confinementarea and activates an anti-theft system such as an alarm or a wheellocking mechanism. The navigation system can be configured tocommunicate with external markers and/or RF transmitters. In someembodiments, the markers comprise magnetic elements arranged to producea magnetic signal indicating a direction or other suitable information.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of the invention(s) will now be described withreference to the following drawings illustrating certain preferredembodiments of the invention(s).

FIG. 1 is a perspective view of a retail store and associated property,illustrating components of a navigation system to reduce the theft ofshopping carts from a parking lot.

FIG. 2A is a block diagram of one embodiment of a navigation system fordetermining the position of a wheeled object.

FIG. 2B is a block diagram of one embodiment of a navigation systemsuitable for use with an anti-theft system disposed in a wheeled object.

FIG. 3 schematically illustrates convenient coordinate systems fordescribing the motion of an object.

FIG. 4 is a flowchart for an embodiment of a navigation process for awheeled object.

FIG. 5A schematically illustrates a rectangular tracking area.

FIG. 5B is a flowchart for an embodiment of a method for determiningcoordinate values from maps.

FIG. 5C is a flowchart for an embodiment of a method for determiningcoordinate values by training.

FIG. 6 is a partial cross-sectional view of an embodiment of a magneticmarker.

FIG. 7A schematically illustrates magnetic field lines associated withthe magnetic marker shown in FIG. 6.

FIG. 7B schematically illustrates contours of magnetic field strengthassociated with the magnetic marker shown in FIG. 6.

FIG. 8A schematically illustrates magnetic field lines associated withanother embodiment of a magnetic marker.

FIG. 8B schematically illustrates contours of magnetic field strengthassociated with the magnetic marker of FIG. 8A.

FIG. 9 schematically illustrates an embodiment of a magnetic bar codemarker that provides a magnetic bar code signal.

FIG. 10A schematically illustrates magnetic field lines associated withthe magnetic bar code marker shown in FIG. 9.

FIG. 10B schematically illustrates contours of magnetic field strengthassociated with the magnetic bar code marker shown in FIG. 9.

DETAILED DESCRIPTION OF CERTAIN PREFERRED EMBODIMENTS I. Overview

Various embodiments of the present invention(s) provide reliable andinexpensive systems and methods for determining the position of anobject in a tracking area. In certain embodiments, the object comprisesa wheeled mechanical device. For example, the wheeled device may be avehicle, a cart, a carrier, a conveyance, a transport, a gurney, acarriage, a wagon, a measuring wheel, or any other device comprising awheel. In certain preferred embodiments, the wheeled device may be, forexample, a shopping cart, a warehouse cart, an industrial cart, aluggage cart, or a baggage cart. In other preferred embodiments, thewheeled device may be, for example, a stretcher, a wheelchair, a walker,a hospital bed, a pharmacy cart, a stroller, or carts used for medicalor other equipment.

In some embodiments of the disclosed system, the position of the objectin the tracking area is determined by a navigation method commonly knownas “dead reckoning.” In a dead reckoning navigation system, the presentposition of the object is determined relative to one or more pastpositions of the object by estimating how far, and in what direction,the object has moved during an elapsed time interval. The past positionmay be a known reference location (commonly known as a “fix”), or it maybe a prior position estimated by the dead reckoning method. By chainingtogether a sequence of dead reckoning positions, the path of the objectas it moves may be determined.

In one example of this method, the object's position relative to areference location is determined at an initial time, and its positionafter an elapsed time interval is estimated from the object's averagespeed and direction of travel (“heading”). By combining object speed,heading, and the elapsed time, the object's position can be updated. Insome embodiments, the object's heading is determined by reference to theEarth's magnetic field by using a magnetic compass. In certain preferredembodiments, the object is a wheeled mechanical device. Under theassumption that the device's wheels do not slip, slide, or skid as thedevice moves, the device's speed may be estimated by determining thenumber of wheel rotations during an elapsed time interval.

Subsequent positions of the object can be estimated by dead reckoningfrom a prior position or positions. In some embodiments, if the objectpasses a known or reference location, the dead reckoning position isreset to the known or reference position in order to reduce error thathas accumulated in the chain of dead reckoning steps. Known or referencelocations can be communicated to the navigation system by variousmagnetic and/or electromagnetic methods as further described below.

In some embodiments, various features of the navigation system areimplemented in components physically separate from the object (e.g., ona central controller or processor), which advantageously permits fewercomponents to be disposed in or on the object itself. Such embodiments,however, require a means for the object to communicate information suchas heading and speed to the central controller. In some of theseembodiments, information may be transmitted between the navigationsystem and the controller via a one-way or a two-way communicationsystem. In other embodiments, the navigation system is implemented in oron the object itself, which advantageously permits the object's positionto be determined autonomously. Such embodiments may be beneficial whereit is desired for the object to perform an action, such as triggering analarm or setting a locking brake, without intervention from an externalcomponent or system.

II. Example Scenario

For purposes of illustration, a sample scenario in which an embodimentof the navigation systems and methods disclosed herein may be used willbe presented with reference to FIG. 1. This sample scenario is intendedto facilitate understanding of one embodiment and is not intended tolimit the scope of the inventions disclosed and claimed.

In the sample scenario shown in FIG. 1, the navigation system is used aspart of a loss prevention system by a retail store 110 to reduce thetheft of shopping carts 122 from a tracking area 114. The tracking area114 may comprise, for example, a portion of a parking lot adjacent tothe store 110. An objective of the loss prevention system is to prevent,or at least reduce, the unauthorized transport of carts 122 across aboundary (or perimeter) 118 of the lot 114. In one embodiment of theloss prevention system, each cart 122 may include an anti-theft systemcomprising, for example, an alarm or a mechanism to inhibit motion ofthe cart 122. Cart motion can be inhibited by providing at least onewheel of the cart 122 with a brake mechanism configured to lock thewheel such as, for example, the brake mechanism disclosed in U.S. Pat.No. 6,945,366, issued Sept. 20, 2005, titled “ANTI-THEFT VEHICLESYSTEM,” which is hereby incorporated by reference herein in itsentirety. In other embodiments, cart motion can be inhibited by othermechanisms, as is well known in the art.

To prevent loss, if the cart 122 is moved across the lot boundary 118,the anti-theft system is activated (e.g., the alarm or the brake istriggered). In some loss prevention systems, the anti-theft system isactivated if the cart 122 detects a signal from an external transmitterpositioned near the lot boundary 118. For example, the signal may be aVLF signal transmitted from a wire buried at the boundary 118, such asdescribed in U.S. Pat. No. 6,127,927, issued Oct. 3, 2000, titled“ANTI-THEFT VEHICLE SYSTEM,” which is hereby incorporated by referenceherein in its entirety. Such loss prevention systems require externalcomponents (e.g., the buried wire) to be installed.

The navigation system disclosed herein may advantageously be used inconjunction with a loss prevention system, because the navigation systemautonomously enables the position of the cart 122 to be determined. Ifthe navigation system determines the position of the cart 122 to beoutside the lot boundary 118, the anti-theft system can be activated. Inone embodiment, the navigation system begins to monitor cart positionwhen the cart 122 leaves a store exit 126. The initial cart position isset to be the position of the exit, and the navigation system updatesthe position of the cart 122 as it moves throughout the lot 114. In someembodiments, the navigation system is provided with the position of thelot boundary 118, for example, as a set of coordinates. By comparing thepresent position of the cart 122 with the position of the boundary 118,the system can determine whether the cart 122 is within the lot 114. Ifthe navigation system determines the cart 122 is moving across the lotboundary 118, the navigation system can activate the cart's anti-theftsystem.

In other embodiments, the navigation system communicates the position ofthe cart 122, or other information, to a central processor or controller138, which determines whether the cart 122 has exited the lot 114 andwhether the anti-theft system should be activated. In certain preferredembodiments, the cart 122 comprises a two-way communication system thatenables suitable information to be communicated between the cart 122 andthe central controller 138 (or other suitable transceivers). A two-waycommunication system suitable for use with the navigation system isfurther discussed in the Two-Way Communication patent application.

Other devices and components can be advantageously used by the retailstore 110 in this sample scenario. For example, one or more markers 130a-130 c can be disposed at various locations throughout the lot 114 toserve as reference locations, landmarks, or beacons. The markers 130a-130 c can mark or otherwise indicate the position of, for example,store exits 126 (e.g., marker 130 a), the perimeter of the lot 114(e.g., markers 130 c), and/or other suitable reference locations (e.g.,marker 130 b). In various embodiments, the markers 130 a-130 ccommunicate information to the navigation system by, for example,magnetic methods (or other electromagnetic methods) as further discussedbelow. The navigation system may use information from a marker 130 a-130c to reset the cart's position (e.g., to reduce accumulated deadreckoning errors), to determine that a lot boundary 118 is nearby, orfor other purposes. In some embodiments, one or more markers (such asthe markers 130 c) may be disposed near locations of entrances/exits 142to the parking lot 114.

In certain embodiments, the markers 130 a-130 c are configured toindicate a reference direction or other information. For example, themarker 130 a may be positioned at the exit 126 and oriented so that itsreference direction points outward, toward the lot 114. The navigationsystem can detect the reference direction and determine whether the cartis entering or exiting the store 110. Similarly, the markers 130 c canindicate an outward direction at the perimeter 118 of the lot 114. Insome embodiments, some or all of the markers 130 a-130 c can beconfigured to communicate other types of information to the navigationsystem as further described below.

In one embodiment, one or more transmitters 134 are disposed throughoutthe lot 114 and configured to transmit information to the navigationsystem in the carts 122. The transmitters 134, in an embodiment, alsoreceive information (e.g., they are transceivers). In variousembodiments, the markers 130 a-130 c (the transmitters 134 and/or theaccess points 136) communicate with the carts 122 via one-way (to orfrom the cart) or two-way (to and from the cart) communicationprotocols. For example, the markers 130, transmitters 134, and/or accesspoints 136 may be configured to use electromagnetic signals tocommunicate with the cart 122. These signals may include magneticsignals and/or RF or VLF signals. As used herein, RF signals compriseelectromagnetic signals having frequencies below about 300 GHz, and VLF(“very low frequency”) signals comprise RF signals having frequenciesbelow about 20 kHz.

In other embodiments, one or more access points (AP) 136 are used tocreate two-way communication links with the carts 122. In FIG. 1, theaccess point 136 is shown positioned above the exit 126 of the store110, which beneficially allows the AP to communicate with carts 122located throughout the parking lot 114. In other implementations, morethan one AP can be used, and the AP's can be located throughout thetracking area. Access points 136 can communicate with a transceiver inthe cart 122 (e.g., an RF transceiver), which is connected to thenavigation system (and/or other components) for purposes of retrieving,exchanging, and/or generating cart status information, includinginformation indicative or reflective of cart position. The types of cartstatus information that may be retrieved and monitored include, forexample, whether an anti-theft system has been activated (e.g., whethera wheel brake is locked or unlocked); whether the cart 122 is moving andin which direction; the wheel's average speed; whether the cart 122 hasdetected a particular type of location-dependent signal such as a VLF,EAS, RF, or magnetic signal (discussed below); whether the cart isskidding; the cart's power level; and the number of lock/unlock cyclesexperienced by the cart per unit time. The access points 136 can alsoexchange information with the navigation system related to the positionof the perimeter 118. In some embodiments, the cart 122 uses a receivedsignal strength indicator (RSSI) to measure the strength of the signalreceived from the access points 136 to assist in determining thedistance from the cart 122 to the access points 136 and whether the cartis moving toward or away from the store 110. In other embodiments, theaccess points 136 use an RSSI to measure the strength of the signalreceived from the carts 122 to determine the location and motion of thecarts 122. Further details on the implementation and use of a set ofwireless access points (AP) is disclosed in the Two-Way Communicationpatent application.

The navigation system may be used by the store 110 for purposesadditional to or different from loss prevention. In some embodiments,the retail store 110 may wish to gather information related to thepositions and paths taken by the carts 122. For example, the retailstore may wish to determine where in the lot 114 that customers leavecarts 122 so as to improve cart retrieval operations. In otherembodiments, the navigation system can communicate with other devicessuch as, for example, a mechanized cart retrieval unit.

Although the sample scenario has been described with reference to a lossprevention system for shopping carts 122 in a parking lot 114 outside aretail store 110, in some embodiments, the navigation system isconfigured to determine the position of a cart 122 within the store 110.For example, the system may be used to determine whether a cart 122 haspassed through a checkout lane or whether the cart 122 has passedthrough selected aisles. In addition, the navigation system may be usedto track cart positions so as to gather information related to theclustering or queuing of carts at certain locations inside or outsidethe store 110. Many uses are possible for the navigation system, and thediscussion of the sample scenario herein is not intended to be limiting.

In some embodiments, the navigation system is disposed in or on the cart122, while in other embodiments, some of the functions of the navigationsystem are carried out by components remote from the cart 122 (e.g., thecentral controller 138). In a preferred embodiment, the navigationsystem is sized so as to fit within a wheel of the cart 122. In certainsuch preferred embodiments, the wheel is a shopping cart wheel (either afront wheel or a rear wheel). In some embodiments, the wheel has adiameter of about five inches, while in other embodiments, the diameterof the wheel is less than about five inches or greater than about fiveinches. In other embodiments, portions of the navigation system can bedisposed in one (or more) of the object's wheels, while other portionscan be disposed elsewhere in the cart 122, for example, in a wheelassembly attaching the wheel to the cart 122 (e.g., a caster or a fork),or in another location in or on the cart 122 (e.g., in the handlebars orthe frame).

The navigation system can be powered by a variety of sources. Forexample, the navigation system may use electrochemical sources (e.g.,disposable or rechargeable batteries), photovoltaic power sources (e.g.,a solar cell), fuel cells, mechanical power sources, or any othersuitable source. In some embodiments, the navigation system is poweredby a generator that stores a portion of the wheel's rotational kineticenergy as electrical energy such as, for example, the wheel generatordisclosed in the Power Generation patent application.

The power source may be integral with or remote from the navigationsystem. For example, in embodiments where the system is disposed in awheel, the power source may be disposed in the wheel and/or elsewhere inor on the cart 122 (e.g., in the wheel assembly, the handlebars, or theframe). In some embodiments, such as those facilitating a lossprevention system, the navigation system is activated only when a cart122 has exited the store 110 so as to prevent power loss while the cart122 is located within the store 110, where theft is less likely.

Embodiments of the navigation systems and methods may be used in otherenvironments and contexts such as, for example, a warehouse, anindustrial plant, an office building, an airport, a hospital, or otherfacility. Additionally, embodiments of the navigation system and methodsare not limited to use with shopping carts but are intended to be usedwith any other moveable objects and particularly with any other wheeledobjects. Many variations of the sample scenario discussed above arepossible without departing from the scope of the principles disclosedherein.

III. Navigation System

FIG. 2A is a schematic diagram of one embodiment of a navigation system200 a for determining the position of a wheeled object. In thisembodiment, the navigation system 200 a implements a dead reckoningalgorithm using object heading, speed (or distance traveled), andelapsed time to update the position of the object. The navigation system200 a comprises a heading sensor 202, a motion sensor 206, a timingsystem 216, and a processor 220. The processor 220 is configured todetermine the object's position from information communicated from thesensors and to output signals to suitable devices such as, for example,a transceiver 240, an alarm 244, a wheel brake 248, and/or a display252.

To facilitate understanding of one embodiment of the navigation system200 a, FIG. 2A schematically illustrates the components of the system(e.g., the heading sensor 202, the motion sensor 206, the timing system216, and the processor 220) as being separate components or modules.This, however, is not a requirement of the navigation system 200 a, andother embodiments may configure the system 200 a differently. Forexample, fewer or more components may be used, and some or all of thefunctions carried out by the various components may be performed byadditional or different components. Also, other embodiments of thenavigation system 200 a need not implement each of the functions andfeatures described, nor achieve each of the advantages described. Insome embodiments, the components are not separate devices or subsystemsbut are configured to be integral. For example, in one embodiment, theheading sensor 202 and the motion sensor 206 send raw signals to theprocessor 220, which performs all subsequent data processingcalculations. It is appreciated that many variations of the navigationsystem 200 a are possible.

a. Heading Sensor

The heading sensor 202 determines the direction of motion of the object.In certain embodiments, the heading sensor 202 functions as a magneticcompass that measures heading with respect to the Earth's magneticfield. In certain such embodiments, the object's heading is determinedas the angle between the direction of the object's motion and thedirection to the local geomagnetic North pole. Accordingly, in someembodiments, the heading sensor 202 comprises a magnetic field sensor204 that detects the local magnetic field at the position of the object.

As is well known, magnetic fields are vectors, having both a magnitudeand a direction. Vectors can equivalently be described as having threeindependent components. Vectors are commonly denoted by boldface lettersso that the Earth's magnetic field will be denoted herein by the symbolB₀. The magnetic field measured by the magnetic sensors 204 will bedenoted by the symbol B. It is generally expected that the primarycontribution to the measured magnetic field will come from the Earth'sfield, namely, B≈B₀.

In certain embodiments, it is convenient to describe vectors, such as amagnetic field, in terms of two mutually perpendicular components lyingin the plane of the object's motion and one component perpendicular tothat plane. In some embodiments, the magnetic field sensor 204 comprisesa two-axis magnetic field sensor that is capable of measuring the valueof the two magnetic field components in the object's plane of motion. Inother preferred embodiments, the magnetic sensor 204 comprises athree-axis magnetic field sensor that measures each of the threeindependent magnetic field components. In yet other embodiments, themagnetic sensor 204 comprises a “2½”-axis sensor that can measure twomagnetic field components and the algebraic sign of a third component.Other sensor variations are possible; for example, in one embodiment themagnetic sensor 204 measures a magnetic field component in the directionof the object's motion and a component perpendicular to this directionbut out of the plane of motion (e.g., by about 45 degrees). In someembodiments, a single magnetic sensor 204 is used, while in otherpreferred embodiments, two or more magnetic sensors 204 are used.

In embodiments using three-axis magnetic sensors, the navigationaccuracy generally is improved, because the three-axis sensor can beused to reject spurious magnetic field measurements that are notindicative of the local geomagnetic field and which can give falseheadings.

The magnetic sensors 204 can be configured in many ways. For example, athree-axis sensor may comprise three single-axis sensors, or a two-axissensor together with a single axis sensor. In other embodiments, anintegrated three-axis sensor may be used. Similar considerations applyto two- and 2½-axis sensors, and it is recognized that many possiblesensor configurations and designs can be selected by a skilled artisan.

Many types of magnetic sensors 204 are suitable for use with thenavigation system 200 a. Various embodiments utilize, for example,inductive sensors, magnetoresistive (MR) sensors, Hall effect sensors,search coils, flux gate sensors, and/or microelectromechanical systems(MEMS) magnetic sensors. In certain preferred embodiments, the magneticsensor 204 comprises a thin-film solid state sensor such as ananisotropic magnetoresistance (AMR) sensor and/or a giantmagnetoresistance (GMR) sensor. In one embodiment, the magnetic sensor204 comprises a Honeywell HMC-1052L two-axis AMR sensor (Honeywell Inc.,Morris Township, New Jersey) for x- and z-component magnetic fieldmeasurements and a Honeywell HMC1041Z one-axis AMR sensor fory-component measurements. The magnetic sensor 204 can provide analog ordigital output. In some embodiments, the magnetic sensor 204 comprises amagneto-inductive sensor, for example, a PNI SEN-S65 magneto-inductivesensor (PNI Corp., Santa Rosa, Calif.).

It is preferable, although not necessary, for the magnetic sensor 204 tohave small size, low power consumption, and to be sensitive togeomagnetic field strengths. For example, in some embodiments, themagnetic sensors 204 are responsive to a range from a lower limit ofabout 1 milliGauss to an upper limit of about 10 Gauss. In otherembodiments, a suitable upper limit is about 3 to 4 Gauss, while in yetother embodiments, an upper limit is about 0.6 Gauss. Further, it isalso preferable, but not necessary, for the magnetic sensor 204 to beoperable at sufficiently high frequencies so that the heading sensor 202can accurately track changes in the object's direction of motion. Forexample, embodiments of magnetic sensors 202 used in shopping carts mayoperate at frequencies up to about 250 Hz, particularly thoseembodiments that filter ambient AC electromagnetic fields as describedfurther below.

The magnetic field sensor 204 detects the local magnetic field at theposition of the object, B, which may include magnetic fieldcontributions in addition to the Earth's magnetic field B₀. Suchextraneous magnetic fields may come from, for example, magnets disposedin the object itself, such as magnets in motors, actuators, generators,etc., or from the magnetization of metals within the object, such as themetal frame of a cart. Other sources of extraneous magnetic fields areexternal to the object, such as buried metal plates, AC power lines,nearby metal objects such as other carts, automobiles, etc.

In embodiments suitable for use with wheeled objects, the heading sensor202 may be disposed within one (or more) of the object's wheels. Inother embodiments, the heading sensor 202 is disposed in or on otherlocations on the object, such as a wheel assembly (e.g., a fork or acaster) or the frame or the handlebars. Portions of the heading sensor202 can be distributed in the object. In a preferred embodiment, one ormore of the magnetic sensors 204 are disposed in a wheel of the object.However, this not a requirement, and in other embodiments the magneticsensors 204 can be disposed in other locations (e.g., the wheelassembly, the frame, and/or the handlebars) or distributed in theobject. For example, a two-axis x-y magnetic sensor 204 may be disposedin one location, while a z-axis magnetic sensor is disposed in anotherlocation. A skilled artisan will recognize that many variations arepossible without departing from the scope of the principles disclosedherein.

The heading sensor 202 may comprise a magnetic sensor signalconditioning module 208, which can be used, for example, to detect andcorrect errors in the magnetic field measurements taken by the magneticsensors 204. In an embodiment, the signal conditioning module 208 canalso perform corrections to remove the effects of extraneous magneticfields to provide a better estimate of the geomagnetic field. The signalconditioning module 208 may be a separate component or module or it maybe integrated into other parts of the navigation system. The signalconditioning module 208 may perform its functions in hardware, software,and/or firmware. In the embodiment shown in FIG. 2A, the signalconditioning module 208 is integrated with the heading sensor; however,in other embodiments, some or all of the functions of the signalconditioning module 208 are performed by other components such as, forexample, the processor 220 or a central controller. In some embodiments,some or all of the functions of the signal conditioning module 208 areperformed by the magnetic sensors 204. Many variations are possible.

In some embodiments, the signal conditioning is performed on an analogsignal received from the magnetic field sensor 204. In otherembodiments, the signal conditioning module 208 includes ananalog-to-digital converter (ADC) that converts an analog input signalfrom the magnetic sensor 204 (e.g., a voltage) into a sampled digitalsignal that can be further conditioned.

The signal conditioning module 208 may, for example, amplify, digitize,filter, multiplex, synchronize, and/or otherwise process the magneticsensor 204 signals. Since the Earth's magnetic field is substantiallystationary on timescales of interest, in some embodiments the signalconditioning module 208 low-pass filters the signals from the sensors204 prior to further processing. In one embodiment, the low-pass filteris configured to have a cutoff frequency of a few Hz. Magnetic sensor204 signals may be synchronized, with each other or with other signalsin the system 200 a, by reference to a master system time provided by atiming system 216.

In certain embodiments, the sensor signal conditioning module 208corrects for errors in the magnetic field measurements taken by themagnetic sensors 204. Such errors may come from sources such as randomor systematic noise and/or extraneous magnetic or electromagneticfields.

Certain embodiments of the signal conditioning module 208 correct forthe presence of an external magnetic field, B_(ext), by subtracting thisquantity from the measured field B to obtain an estimate for thegeomagnetic field: B₀≈B−B_(ext). In these embodiments, an estimate ofthe external field must be provided to the navigation system 200 a.Therefore, if a component, such as a motor having internal magnets, isreplaced, an new estimate for the external field of the replacementcomponent must be provided. In other embodiments, a more sophisticatedmodel, such as a lookup table using interpolation, is used to correctfor external magnetic fields. The correction for the presence ofexternal fields may be performed by the magnetic sensor signalconditioning module 208, by the processor 220, or by some other suitablecomponent of the navigation system 200 a.

In certain embodiments, the presence of external fields in the vicinityof the magnetic sensors 204 is reduced by disposing one or more magneticflux concentrators or flux shields around magnetic components (e.g.,on-board motors) that potentially contribute extraneous fields to themagnetic sensors 204. A flux concentrator or shield may comprise one ormore materials having a high magnetic permeability such as, for example,Mumetal® (Magnetic Shield Corp., Bensenville, Ill.), Permalloy® (B&DIndustrial Mining Services, Inc., Jasper, Ala.), cold-rolled steel(possibly with corrosion resistant plating), mild steel, metallicalloys, and/or other suitable materials. Alternatively, motor designshaving low magnetic flux leakage may be selected in some embodiments.

In some embodiments, the magnetic sensor conditioning module 208 isconfigured to correct for extraneous fluctuations in the measuredmagnetic field strength. Such fluctuations may be caused by randommeasurement noise, the presence of time-varying magnetic fields from ACpower sources, or from vibrations or oscillations in the heading sensor202. For example, in embodiments wherein the wheeled object comprises acastered wheel, chatter or shimmy of the wheel can cause a magneticsensor 204 disposed in the wheel to oscillate about the direction ofmotion. Accordingly, variations in the magnetic field detected by thesensor 204 may reflect wheel chatter or shimmy rather than headingvariations.

Artificial fluctuations in the field components detected by the magneticsensors 204 can be reduced using a number of techniques. For example,the signal conditioning module 208 can low pass filter the sensor 204signals. The filter may comprise an analog and/or a digital filter. Incertain embodiments, a finite impulse response (FIR) filter and/or aninfinite impulse response (BR) can be used to filter digital signals.One embodiment utilizes a moving average (e.g., a boxcar average)applied to a number of the past measurements, such as, for example, 2,4, 8, 10, 20, 40, or 100 measurements. Other embodiments apply a type of“optimal” filter such as, for example, a Wiener or a Kalman filter, toremove noise or other high frequency artifacts from the sensor signals.

Stray alternating current (AC) electromagnetic fields from, for example,AC power lines, leaking fluorescent light ballasts, etc., may causeartificial fluctuations in the measured magnetic field components tooccur at the AC frequency (generally, 50 Hz or 60 Hz). In someembodiments, the signal conditioning module 208 includes a notch filterwith a stopband at about 50 Hz or 60 Hz to reduce the effects of strayAC fields. In some embodiments, the sampling frequency of the magneticsensor 204 is adjusted so that computationally efficient notch filteralgorithms can be used. For example, some notch filter algorithms areparticularly efficient if the sampling rate is four times the frequencyto be rejected. Accordingly, some embodiments of the magnetic fieldsensor 204 sample at a rate of 200 Hz or 240 Hz, depending on whetherthe local AC frequency is 50 Hz or 60 Hz, respectively. Sampling at fourtimes the AC frequency also beneficially provides reasonable rejectionof 100 Hz and 120 Hz components produced by fluorescent lights. In apreferred embodiment, the sampling rate is 480 Hz to provide strongrejection of fluorescent light signals. However, since sampling at suchfrequencies can require extra power consumption, other embodimentssample the magnetic field at a rate of 100 or 120 Hz and then averageevery two samples to cancel out any stray linear 50 Hz or 60 Hzcomponents.

In certain embodiments, such as tracking the position of a shopping cartas it leaves a store, the local magnetic field measured by the objectmay significantly depart from the geomagnetic field due to the presenceof nearby magnetic materials. For example, the steel frame of a doorwayand the surrounding building materials may cause a deviation in themagnitude and direction of the local field that will cause errors in theinferred heading taken by the object. Automobiles and magnetic metalsburied in a parking lot can also lead to local field deviations. Someembodiments of the system 200 a correct for such deviations, forexample, by storing a lookup table containing corrections to themagnetic field. Other embodiments reject field measurements that deviatesignificantly from the Earth's field or correct them by a suitableaveraging procedure. In certain embodiments, after a shopping cart exitsa store, the navigation system waits for a specified time interval orfor the cart to have traveled a specified distance before beginning tonavigate. In certain such embodiments, the navigation system assumes thecart moves in a straight line from the store exit until the navigationsystem begins to track the cart position.

The signal conditioning module 208 can be configured to reduce theeffects of other processes that prevent accurate magnetic fieldmeasurements from being taken. For example, if AMR detectors are used asmagnetic field sensors 204, some embodiments of the signal conditioningmodule 208 correct for errors in field strength measurements caused bycross-field effects, as is well known in the art.

After correcting magnetic sensor 204 measurements for errors, artificialfluctuations, and/or extraneous fields so as to arrive at an improvedestimate of the Earth's magnetic field, some embodiments of the signalconditioning module 208 (or the processor 220 or a system controller)provide a further check on whether the estimated field is a reliablemeasure of the geomagnetic field. For example, one embodiment makes acomparison of the magnitude of the estimated geomagnetic field to themagnitude of the known value |B₀|. If the compared values do not agree(to within an error tolerance), the estimated field measurements arerejected. Other embodiments similarly test the estimated field againstother known attributes of the true geomagnetic field, such as, thegeomagnetic inclination (the field's angle with respect to a horizontalplane).

Other corrections are possible. For example, some embodiments of thenavigation system 200 a comprise one or more orientation sensorsconfigured to determine whether, and by how much, the object is inclinedwith respect to the local gravitational field. The orientation sensorsmay comprise inclinometers and/or accelerometers. By determining theorientation of the object, such embodiments can use standardtrigonometric calculations to transform the magnetic field measurementsfrom an object-based coordinate system to an Earth-based coordinatesystem.

Information from the heading sensor 202 can be used for other purposesbesides dead reckoning. For example, an anti-theft system in a cart maysignal a wheel brake to engage and lock if the shopping cart exits aconfinement perimeter (e.g., the perimeter of a parking lot). Furthermovement of the cart across the parking lot causes the locked wheel toskid, which results in significant frictional wear on a bottom portionof the wheel. If dragged a significant distance, the locked wheel may bedamaged (e.g., its tire tread significantly worn down) and may requirereplacement, causing extra expense. Accordingly, some embodiments of theheading sensor 202 are configured to detect whether a locked wheel isbeing dragged, for example, by measuring vibration of the wheel. Thewheel's vibration causes the heading measurements (and/or the magneticfield component measurements) to fluctuate at a frequency of the wheelvibration. The processor 220 can monitor the heading information todetermine whether a locked wheel exhibits such a vibration signature. Incertain embodiments, the system may also comprise a vibration sensor toassist in detecting the wheel vibration signature. A suitable vibrationsensor is disclosed in the Two-Way Communication patent application. Insome embodiments, if the vibration signature of a locked wheel isdetected, the processor 220 next checks the heading of the wheel todetermine if it is being dragged back toward the facility. If so, theprocessor 220 may signal the anti-theft system to unlock the wheel,under the assumption that the cart is being returned to the store ratherthan being stolen. In some embodiments, the wheel is unlocked only ifthe object has been dragged a predetermined distance back toward thefacility.

In some embodiments, the access point 136 (AP) may use RSSI to measurethe strength of a signal received from the navigation system 200 a so asto infer a distance to the wheel. The change is signal strength can beused to determine whether the locked wheel is being dragged toward oraway from the facility. In these embodiments, the AP 136 may communicatea signal to the navigation system 200 a (and/or the anti-theft system)to unlock the wheel.

Although the heading sensor 202 described with reference to FIG. 2Acomprises one or more magnetic sensors 204, other embodiments of theheading sensor 202 can determine the direction of travel by other means.For example, in some embodiments, the navigation system 200 a uses oneor more accelerometers to determine the deviation of the object from astraight-line path. In an embodiment disposed on an object with acastered (e.g., swiveled) wheel, the navigation system uses rotationalencoders coupled to the castered axis to determine the heading of thewheel. Other embodiments may use a combination of magnetic,acceleration, or rotation sensors to determine heading. Other variationsare possible, and the above disclosure is not intended as a limitationon devices and methods used to determine heading.

b. Motion Sensor

The navigation system 200 a schematically illustrated in FIG. 2Acomprises a motion sensor 206 that determines the movement of theobject. In some embodiments, the motion sensor 206 comprises a speedsensor that measures the speed of the object over a short time interval.In other embodiments, the motion sensor 206 comprises a distance sensorthat measures a distance over which the object moves. Certainembodiments may comprise both a speed sensor and a distance sensor toimprove accuracy and reliability. The motion sensor 206 may be coupledto the timing system 216 in order, for example, to determine elapsedtime intervals and/or to synchronize the motion measurements withheading measurements. The motion sensor 206 communicates a signalcorresponding to the object's speed or distance traveled to theprocessor 220 wherein it is combined with heading information from theheading sensor 202 to determine the position of the object.

Many types of motion sensors 206 are suitable for use with thenavigation system 200 a. For example, the motion sensor 206 can comprisea speedometer, an odometer, a tachometer, and/or other suitable movementdetector. The motion sensor 206 may utilize mechanical, optical, and/orelectromagnetic components to detect and measure the object's motion. Insome embodiments, the motion sensor 206 includes processing circuitry tocalculate, for example, speed or distance, while in other embodiments,the motion sensor 206 communicates raw signals to the processor 220 forsubsequent motion determination calculations. In certain embodiments,the motion sensor 206 includes a signal conditioning module (not shownin FIG. 2A) that performs functions analogous to those described abovewith reference to the magnetic sensor signal conditioning module 208.Although FIG. 2A schematically shows the motion sensor 206 as being aseparate component in the navigation system 200 a, this is not arequirement, and in other embodiments the motion sensor 206 isintegrated with other system components such as, for example, theheading sensor 202.

In certain embodiments, the navigation system 200 a is configured to beused with a wheeled object such as, for example, a vehicle, a cart, atransport, a measuring wheel, etc. In these embodiments, the motionsensor 206 may be configured to detect the rotation of one or morewheels attached to the object so as to determine the speed and/ordistance traveled by the object. In the embodiment schematicallyillustrated in FIG. 2A, the motion sensor comprises a wheel rotationsensor 212, which can detect and/or measure the presence and/or theamount of wheel rotation. The wheel rotation sensor 212 communicates oneor more signals indicative of wheel rotation to the processor 220. Insome embodiments, the wheel rotation sensor 212 comprises processingcircuitry to convert a measurement of wheel rotation into a speed and/ora distance, while in other embodiments, the rotation sensor 212communicates a raw signal to the processor 220, which combines the rawsignal with other information to determine speed and/or distance.

In various embodiments, the wheel rotation sensor 212 comprises amechanical, optical, and/or electromagnetic device configured to sensethe movement or rotation of the wheel. Many varieties of rotation sensorare known in the art and can be configured for use with the motionsensor 206. For example, the rotation sensor 212 can comprise one ormore widely available incremental or absolute rotary encoders thatdetect wheel rotation. In one embodiment, the wheel rotation sensor 212comprises one or more optical encoders, which may use a light source anda light detector separated by an element that is partially transparentand partially opaque to detect rotation. In other embodiments, the wheelrotation sensor 212 comprises one or more magnetic encoders such as, forexample, a Hall effect sensor configured to detect the rotation of oneor more magnets attached to a rotating portion of the wheel. Inembodiments utilizing magnetic rotation detectors, it is preferred, butnot necessary, for the magnetic encoder to be magnetically shielded sothat extraneous magnetic field is not detected by the magnetic fieldsensor 204.

In certain embodiments, the wheel rotation sensor 212 comprises amechanical or electromechanical system comprising one or more bumps orcams rotating with the wheel and configured to trip, compress, orotherwise trigger a non-rotating switch or sensor. The switch or sensormay be a mechanical or electrical switch. In some embodiments, thesensor is a piezoelectric element that generates an electrical signal(e.g., a voltage) when compressed by a bump or cam. In certainembodiments, more than one bump or cam may be used. In certain preferredembodiments, N substantially equally spaced bumps are disposed about acircumference of the wheel so that in one complete revolution the switchor sensor is triggered N times, thereby providing rotational sensitivityof about 2π/N radians. In various embodiments, the number N may be, forexample, 1, 2, 3, 4, 8, 16, or some other suitable number. Such rotationdetectors may be advantageously used with certain embodiments of thedead reckoning system disclosed herein [e.g., see the discussion withreference to Eqs. (6) and (7)].

Other embodiments of the rotation sensor 212 operate in an analogousfashion but may use notches, grooves, detents, protrusions, etc. inaddition to or instead of one or more bumps or cams. Moreover, otherembodiments may dispose the switch or sensor on a rotating portion ofthe wheel and dispose a bump, cam, etc. on a non-rotating wheel portion.It is appreciated that there are many mechanical configurations that canbe used to detect wheel rotation.

In embodiments suitable for use with wheeled objects, the motion sensor206 may be disposed within one (or more) of the object's wheels. Inother embodiments, the motion sensor 206 is disposed in or on otherlocations on the object, such as a wheel assembly (e.g., a fork or acaster) or the frame or the handlebars. Portions of the motion sensor206 can be distributed in the object. In a preferred embodiment, one ormore of the wheel rotation sensors 212 are disposed in at least onewheel of the object. In certain embodiments, a wheel rotation sensor 212is disposed in more than one wheel so as to provide more accurate andreliable motion sensing. However, this not a requirement, and in otherembodiments the motion sensors 204 can be disposed in other locations(e.g., the wheel assembly, the frame, and/or the handlebars) ordistributed in the object. A skilled artisan will recognize that manyvariations are possible without departing from the scope of theprinciples disclosed herein.

In certain embodiments, the wheel comprises a power generator thatproduces electrical energy from the rotational kinetic energy of thewheel. A suitable power generator is disclosed in the Power Generationpatent application. The power generator can be used to supply power tosome or all of the navigation system 200 a. In certain such embodiments,the power generator is also used as a wheel rotation sensor 212, forexample, by detecting and monitoring the rotation of components withinthe generator or by monitoring the frequency of the electrical powerproduced by the generator. Since generators use (and/or produce)magnetic fields, some embodiments magnetically shield the generator toavoid altering the magnetic field measurements taken by the magneticsensors 204 in the heading sensor 202. However, in other embodiments,the magnetic field measurements are taken by the magnetic sensors 204when the generator is at a zero-crossing, e.g., at the nulls of the ACmagnetic field of the generator.

Certain embodiments are configured to detect (and possibly correct)errors in the distance traveled by the object. For example, someembodiments low-pass filter speed (or distance) measurements to smoothout variations in the measurements and to remove high frequency noise.One embodiment utilizes a low-pass filter with a cutoff frequency of afew Hz. In other embodiments, the system calculates the angularacceleration of the wheel to detect a missed wheel rotation signalcaused by, for example, the wheel losing contact with the surface, orthe wheel sliding or skidding on uneven or wet surfaces. Sudden changesin acceleration may be indicative of such traction errors, and thenavigation system can reject suspect signals.

Some embodiments of the system can correct for intermittent traction,which can occur if the wheel passes over an uneven surface (e.g. acobblestone surface). In some of these embodiments, the system stores anestimate of the average cart speed (or the average angular velocity ofthe wheel) by, for example, averaging a number of past measurements. Ifa measurement of the instantaneous speed (or wheel angular velocity)departs from the average by more than a specified amount, themeasurement can be rejected and the average used instead. By tracking anumber of past measurements, the navigation system can use well-knownkinematic relationships to estimate (and track) dynamical parameterssuch as an acceleration or a jerk (time rate of change of acceleration).Under the assumption that accelerating objects travel at approximatelyconstant accelerations (over short periods of time), detection of asufficiently large jerk can indicate that error correction is needed.

c. Timing System

In the embodiment shown in FIG. 2A, the navigation system 200 acomprises a timing system 216. In some embodiments, the timing system216 is a separate component or module, while in other embodiments thetiming system 216 is integrated with other components (e.g., theprocessor 220). The timing system 216 may comprise one or more masteroscillators, clocks, crystals, counters, or other suitable timingcircuits. Many possible timing systems 216 well known in the art can beused with embodiments of the navigation system 200 a.

In some embodiments, the timing system 216 can communicate timinginformation to other system components, such as the heading sensor 202,the motion sensor 206, and/or the processor 220. In certain embodiments,the timing system 216 is used to provide elapsed times so as to enableconversion of distance traveled into an average speed. In otherembodiments, the timing system 216 is used to provide synchronization ofthe signals from the other system components. In certain preferredembodiments, the navigation system 200 a utilizes the timing system 216to store a time history of the object's position, speed, and/or othercharacteristics.

d. Processor

In the embodiment schematically shown in FIG. 2A, the processor 220implements a dead reckoning algorithm to determine the object's positionby combining heading information from the heading sensor 202, speed ordistance information from the motion sensor 206, and elapsed timemeasurements from the timing system 216. As shown in FIG. 2A, theprocessor 220 can, in various embodiments, output suitable signals toexternal or peripheral devices such as, for example, a transceiver 240,an alarm 244, a brake mechanism 248 to lock the wheel, and/or a monitoror display 252. The processor 220 can be connected to the peripheraldevices by wires that are routed, for example, through or on the frameof the object. In other embodiments, wireless communication techniquesare used.

In some embodiments, the display 252 is mounted to a portion of theobject such as, for example, a handle on a shopping cart. The display252 may include a display screen, such as a touch screen, that isviewable by a person pushing the object. The display 252 can be used todisplay information received from the processor 220. For example, thedisplay 252 may show a graphic illustrating the position of the objectwithin a facility. The display 252 may be connected to othercontrollers, processors, and/or transceivers and configured to outputadditional information. In embodiments suitable for a retail store, thedisplay 252 may have a card reader or wand that enables customer toswipe a customer loyalty card or another type of card that identifiesthe customer. In these embodiments, the transceiver 240 may beconfigured to convey the customer identifier (as well as positioninformation from the navigation system 200 a) to a remote transceiver(or an access point) such that this identifier (and positioninformation) can be associated with other information received from thecart during the customer's shopping session. Further information relatedto tracking the locations and monitoring the status of objects (such asshopping carts) is disclosed in the Two-Way Communication patentapplication.

The processor 220 preferably is disposed close to the heading and motionsensors 202 and 206. In a preferred embodiment, the processor 220 isdisposed in the wheel; however, in other embodiments, the processor isdisposed elsewhere in the object, for example, in the wheel assembly(e.g., fork or caster), the handlebars, or the frame of a cart. Theprocessor 220 may be distributed in the object with, for example, someprocessing portions in the wheel and/or wheel assembly and/or otherprocessing portions located elsewhere (e.g., the handlebars or the frameor in a spatially remote processor). In other embodiments, the processor220 (or portions thereof) is remote from the object (e.g. a remotecomputer or controller), and the sensors 202 and 206 communicate withthe processor 220 via wired or wireless communications. The navigationsystem 200 a can be configured differently than shown in FIG. 2A, whichillustrates one particular embodiment of a processor 220.

In certain embodiments, the processor 220 comprises one or moremicrocontrollers or microprocessors. In some embodiments, the processor220 includes a digital signal processor (DSP), an analog-to-digitalconverter (ADC), on-board memory (including flash memory, RAM, and/orROM), interfaces, counters, and/or other suitable components.

In the embodiment schematically depicted in FIG. 2A, the processor 220comprises a position determination module 224, an error correctionmodule 228, a location reset module 232. Other embodiments may utilizefewer or additional modules or components and may configure the modulesdifferently. Additionally, in other embodiments the modules mayimplement the processor's functions (e.g., position determination)differently or in a different order.

As used herein, the term module refers to logic embodied in hardware orfirmware, or to a collection of software instructions, possibly havingentry and exit points, written in a programming language, such as, forexample, C, C++, or FORTRAN. A software module may be compiled andlinked into an executable program, installed in a dynamic link library,or may be written in an interpreted programming language such as BASIC,Perl, or Python. It will be appreciated that software modules may becallable from other modules or from themselves, and/or may be invoked inresponse to detected events or interrupts. Software instructions may beembedded in firmware, such as an EEPROM. It will be further appreciatedthat hardware modules may be comprised of connected logic units, such asgates and flip-flops, and/or may be comprised of programmable units,such as programmable gate arrays or processors. The modules describedherein are preferably implemented as software modules, but may berepresented in hardware or firmware. Additionally, functions, processes,logic, and/or procedures carried out by one or more modules may beorganized and/or combined differently than described without departingfrom the scope of the disclosed inventions.

In the embodiment schematically illustrated in FIG. 2A, the positiondetermination module 224 implements an embodiment of a dead reckoningalgorithm. The position determination module 224 combines headings,speeds, distances, and elapsed times to update the position of theobject as described further herein. In certain preferred embodiments,the position determination module 224 compares the object's currentposition with the known position of the perimeter of a tracking area(e.g., the lot boundary 118 in FIG. 1), and if the position of theobject is outside the perimeter, the processor 220 triggers, forexample, the alarm 244 or a wheel brake 248.

The error correction module 228 can be configured to correct errors ininput parameters (such as heading and/or speed or distance or wheelrotation) as further described below. In some embodiments, the errorcorrection module implements some of the error-correcting proceduresdiscussed with reference to the magnetic sensor signal conditioningmodule 208. If errors exceed certain tolerances, the position updategenerated by the position determination module 224 is rejected, and flowof control returns to the position determination module 224 fordetermination of a new position update.

In certain preferred embodiments, the error correction module 228implements a control algorithm that provides an optimal or best estimateof the object's position (or velocity). This optimal estimate may depend(in part) on the object's prior positions. For example, certainembodiments implement a data processing algorithm to provide abest-estimate position for the object based on some or all of theinformation available to the system 200 a. The data processing algorithmmay be adapted to filter, smooth, interpolate, or predict, or correctthe object's position. In one embodiment, the data processing algorithmcomprises a Wiener and/or a Kalman filter.

Certain embodiments of the navigation system 200 a comprise a locationreset module 232. The module 232 is configured to accept signalsrepresenting the position of nearby reference locations or landmarks.For example, in some embodiments, as shown in FIG. 1, the markers 130a-130 c, the transmitters 134, and/or the access points 136 (AP)communicate a known position to the system 200 a. The location resetmodule 232 resets the object position to reflect the informationcommunicated by the marker, transmitter, or AP. By resetting the objectposition, any position errors accumulated during previous dead reckoningsteps are eliminated (or at least reduced). Accordingly, embodimentsthat comprise a location reset module 232 advantageously provide morereliable and accurate object positions. In one embodiment, thenavigation system 200 a utilizes a received signal strength indicator(RSSI) to determine a distance between the object and the transmitter134 (or marker 130 a-130 c or AP 136). The change in the distance can beused to determine whether the object is moving toward or away from thetransmitter (or marker or AP).

In some embodiments, the processor 220 includes storage 236, which maycomprise volatile or nonvolatile memory, including, for example, DRAM,SRAM, ROM, or cache. The storage 236 can also comprise retrievablememory including, for example, a hard drive, a floppy drive, an opticaldrive (e.g., CD-ROM or DVD), a flash drive, or other memory device. Inan embodiment, the processor 220 stores selected information (includingtime histories) relating to the object and its environment such as, forexample, position, speed, velocity, acceleration, path, vicinity toreference locations or areas or to other objects. The navigation system200 a may comprise circuitry configured to download, transfer, transmit,or otherwise communicate such information to other objects, devices,and/or controllers. In some embodiments, the system 200 a communicatesto other devices via one-way or two-way RF (or VLF) signals.

Other configurations of the processor 220 are possible. For example, theorder in which the processor 220 implements the modules 224, 228, and232 may be different in other embodiments. In some embodiments, theprocesses implemented by the modules may be shared among modulesdifferently than shown in FIG. 2A. For example, certain aspects of theerror correction module 232 may be carried as part of the positiondetermination module 224 (e.g., correcting for heading or speed errors).

e. Anti-Theft System Using A Dead Reckoning Navigation System

FIG. 2B illustrates a schematic block diagram of one embodiment of anavigation system 200 b suitable for use with an anti-theft systemdisposed in a wheeled object such as, for example, a shopping cart. Inthis embodiment, the anti-theft system comprises a mechanism disposed inor in conjunction with a wheel of the cart, which can be engaged toinhibit cart motion if the cart is transported outside a predeterminedarea. In certain embodiments, this mechanism comprises a wheel brake. Inother embodiments, other types of electromechanical mechanisms forinhibiting the motion of the cart, including mechanisms that cause oneor more of the wheels of the cart to be lifted off the ground, can beused instead of, or in addition to, a brake mechanism. In someembodiments, the brake mechanism comprises an actuator that can engagean inner surface of the wheel so as to inhibit the motion of the wheel.In certain embodiments, the brake mechanism has an unlocked state inwhich the wheel can substantially freely rotate and a locked state inwhich the wheel's rotation is substantially impeded. In otherembodiments, the brake mechanism is progressive, wherein the actuatorcan apply differing amounts of braking force to the wheel. The brakemechanism is actuated by a motor drive subsystem 260 having motordirection inputs MDIR1 and MDIR2 and a motor stall indicator. Theanti-theft system may also include an alarm 288.

The navigation system 200 b may be generally similar to the navigationsystem 200 a (FIG. 2A). In this embodiment, the system 200 b comprises amicrocontroller 268 such as, for example, an 8-bit CMOS ATmega168Vmicrocontroller (Atmel® Corp., San Jose, Calif.) including 16 Kbyteself-programming flash program memory, 1 Kbyte SRAM, 512 bytes EEPROM,an 8-channel 10-bit ADC, and one or more pulse width modulation (PWM)channels. A programming/debug interface 270 can be included in anembodiment.

In certain embodiments, the microcontroller 268 advantageously isconfigured to provide direct access to an EEPROM or flash memory whichstores values for system parameter, rather than having first to load theparameters into a RAM memory. In one embodiment, the microcontroller 268comprises a Texas Instruments MSP430 having 256 bytes of flash memory,which is accessible as ordinary data memory (Texas Instruments Inc.,Dallas, Tex.).

The system 200 b may include an RF transceiver 264 configured totransmit and receive RF signals. The transceiver 264 can bebidirectionally coupled to the microcontroller 268 via a serialperipheral interface (SPI). In certain embodiments, the transceiver 264is configured to operate in the 2.4 GHz band and can transmit andreceive 2.4 GHz RF signals via an antenna 265. In one embodiment, thetransceiver 264 comprises a CC2500 multichannel 2.4 GHz RF transceiver(Chipcon AS, Oslo, Norway).

In some embodiments, the navigation system 200 b further comprises a VLFtransceiver 292 and/or a transceiver 296 configured to communicate withan electronic article surveillance (EAS) system. In certain embodiments,information relating to known reference locations (store exits, lotperimeters, etc.) can be communicated to the navigation system 200 b andreceived by, for example, the 2.4 GHz transceiver 264, the VLFtransceiver 292, and/or the EAS transceiver 296. In one embodiment, theVLF signal comprises an electromagnetic signal having a frequency belowabout 8 kHz. Such information can be used by the system 200 b to resetthe position of the object to the reference position as part of an errorcorrection procedure (e.g., implemented by the error correction module228 shown in FIG. 2A). In addition, certain embodiments of the system200 b use signals from the transceivers 264, 292, and/or 296 to assistin determining the position of the boundary of the tracking area orother suitable locations (such as checkout lanes in a retail store). Thetransceivers 264, 292, and/or 296 can also be used to communicatenavigational information (e.g., position, speed, heading, path, etc.)from the navigation system 200 b to a central controller or othersuitable processing device.

Other embodiments of the navigation system 200 b utilize additional ordifferent devices to transmit and/or receive signals including, forexample, electromagnetic signals (e.g., optical, infrared, and/ormicrowave) and/or acoustic signals (e.g., ultrasound). For example, inan embodiment used with a shopping cart, the navigation system 200 bcomprises an infrared sensor that detects an infrared signal from aninfrared transmitter disposed in the exit of a store to determine whenthe cart has entered or left the store.

In the embodiment shown in FIG. 2B, the navigation system 200 b alsocomprises a wheel rotation detection circuit 272, a magnetic fieldsensor 276, and a magnetic field sensor signal conditioning circuit 280that are generally similar to the modules 212, 204, and 208,respectively, described with reference to FIG. 2A. These componentsprovide information to the dead reckoning algorithm so as to determinethe position of the object.

The navigation system 200 b further comprises a power source 284 that,in an embodiment, comprises an electrochemical power source (e.g., 2 AAalkaline batteries) and a low dropout (LDO) regulator to provide aregulated output voltage to integrated circuit components. In otherembodiments, rechargeable batteries and/or a photovoltaic source may beused in addition to or instead of the alkaline batteries. In someembodiments, the power source 284 also supplies power to the motor drivesubsystem 260. In certain preferred embodiments, the navigation system200 b and the motor drive subsystem 260 are powered by a generatormechanism configured to convert a portion of the rotational kineticenergy of the wheel into electrical power.

IV. Navigation Methods

Certain preferred embodiments of the navigation system use deadreckoning methods to determine the position of an object. Variousembodiments of a dead reckoning algorithm will be described below;however, it is recognized that alternative algorithms andimplementations of algorithms can be used with the navigation systemdisclosed herein. Accordingly, the description of the algorithms andmethods herein is intended to facilitate understanding of the principlesof the navigation system but is not intended to limit the scope of thisnavigation methods used by the system.

FIG. 3 illustrates two convenient three-dimensional Cartesian coordinatesystems 320 and 330 for describing the motion of an object 310. As iswell known, coordinate systems other than Cartesian coordinate systemscan be used. The first coordinate system 320 (denoted by upper case X,Y, Z) is fixed to the Earth and may be oriented so that the X-axispoints in the direction of the geomagnetic North pole. The Y- and Z-axesare mutually perpendicular to the X-axis and to each other. The Z-axisis vertical (parallel to the direction of the local gravitationalacceleration vector), and the X-Y plane is horizontal (perpendicular tothe local gravitational acceleration vector).

As illustrated in FIG. 3, the object 310 moves on a path 340, which ingeneral is a three-dimensional trajectory. The position of the object ata time t may be referenced by three Cartesian coordinates(X(t),Y(t),Z(t)). In some embodiments, the position refers to thecenter-of-mass of the object, while in other embodiments, the positionrefers to a point of contact between the object and a surface on whichit travels.

The second coordinate system 330 (denoted by lower case x, y, z) isattached to and moves with the object 310 (e.g., it is a body-centeredcoordinate system). The x-axis points in the instantaneous direction ofmotion of the object. The y- and z-axes are mutually perpendicular tothe x-axis and to each other. The angle θ is defined to be the anglebetween the instantaneous direction of the x-axis and the fixeddirection of the X-axis (e.g., geomagnetic North). In some embodiments,the angle θ is used as the heading of the object. The instantaneousspeed of the object is denoted by v(t) and in general is a function ofthe time t.

For ease of illustration in the following discussion and not as alimitation on the navigation methods disclosed, it is assumed that thepath 340 of the object 310 lies in a plane, hereinafter denoted thenavigation plane 350. The navigation plane 350 generally corresponds toa portion of a tracking area 360 in which the object's position is to bedetermined. For example, in FIG. 1, the tracking area 360 corresponds tothe parking lot 114. In some embodiments, the navigation plane 350 isnominally parallel to a best-fit plane to a perimeter 365 of thetracking area 360. In one embodiment, the perimeter 365 of the trackingarea 360 is a modeled as a set of connected line segments (e.g., apolygon), which comprise a locus of points (e.g., vertices) in space. Inthis embodiment, the desired navigation plane 350 is the plane thatminimizes a distance metric (e.g. a root-mean-square distance), from theperimeter locus to the best-fit navigation plane 350. If the trackingarea 360 is substantially close to being a single plane, someembodiments define the navigation plane 350 to be the plane containingthe three farthest separated vertices of the tracking area 360.

In general, the navigation plane 350 is tilted with respect to theEarth-based coordinate system 320 (e.g., the tracking area 360 is notperfectly level). In the following example discussion, it is assumed thenavigation plane 350 coincides with the Earth's horizontal plane (e.g.,the X-Y plane) so that the object's Z-axis position at all times isZ(t)=0. It is appreciated, however, that navigation methods for a tiltednavigation plane 360 can be straightforwardly developed using standardgeometric and trigonometric calculations.

In some embodiments of the dead reckoning navigation system, theobject's position at a time t is determined from the following kinematicequations

X(t)=X(t ₀)+∫_(t) ₀ ^(t) v(t)cos θ(t)dt

Y(t)=Y(t ₀)+∫_(t) ₀ ^(t) v(t)sin θ(t)dt.   (1)

According to Eq. (1), at an initial time t₀ the object is at a knownposition (X(t₀), Y(t₀)), and the navigation system determines theobject's position at any later time t by integrating the object's speed,v(t), and heading, θ(t), with respect to time.

The integrals in Eq. (1) can be evaluated by many different methods asis well known in the numerical and computational arts. In someembodiments, the navigation system determines the speed v_(i) and theheading θ_(i) at sampling times t_(i), where i is an index labeling thesamples. The sample interval Δt_(i) in general can vary with time,although in some embodiments a fixed (constant) sample rate is used. Incertain embodiments, the integrals in Eq. (1) are approximated by sums,and the object's position is determined according to

$\begin{matrix}{{X = {X_{0} + {\sum\limits_{i}{v_{i}\cos \; \theta_{i}\Delta \; t_{i}}}}}{Y = {Y_{0} + {\sum\limits_{i}{v_{i}\sin \; \theta_{i}\Delta \; {t_{i}.}}}}}} & (2)\end{matrix}$

Other embodiments of the navigation system may use numerical methodsdifferent from Eq. (2) to evaluate the integrals in Eq. (1) such as, forexample, the trapezoidal rule, Simpson's rule, or another suitablequadrature method.

Other embodiments of the navigation system may use methods that aredifferent from those discussed with reference to Eqs. (1) and (2). Forexample, one embodiment uses one or more acceleration sensors to detectthe acceleration in the direction of the object's motion. The speed ofthe object is determined by integrating the measured acceleration withrespect to time: v(t)=∫_(t) ₀ ^(t)a(t)dt. The object's position can bedetermined from this speed (and heading) by the methods discussedherein. In some embodiments, the acceleration sensor comprises anaccelerometer comprising, for example, a piezoelectric or MEMS device.It is appreciated that many other dead reckoning methods may be readilyimplemented in embodiments of the systems discussed herein. Accordingly,the disclosure of certain example embodiments is not intended to limitthe scope of the navigation principles suitable for use with navigationsystems.

a. Heading Determination

In certain embodiments, the heading is determined from magnetic fieldmeasurements taken by, for example, the magnetic sensors 204 (FIG. 2A).The Earth's magnetic field B₀ is shown in FIG. 3. Due to the choice oforientation for the Earth-based coordinate system 320, the vector B₀lies in the X-Z plane and makes an angle φ with respect to the X-axis.The angle φ generally is a negative angle in the Northern Hemisphere. Ifthe navigation plane 350 is horizontal with respect to the localgravitational acceleration vector, the angle φ is the negative of thegeomagnetic inclination angle.

In certain embodiments, the magnetic field sensor 212 is oriented tomeasure two or more components of the local magnetic field along the(x,y,z) coordinate directions of the coordinate system 330. In thecoordinate system 320, the geomagnetic field has components

B_(x)=B₀ cos φ cos θ

B_(y)=B₀ cos φ sin θ

B_(z)=B₀ sin φ.   (³⁾

The heading angle θ is determined from the magnetic field measurementsaccording to θ=arctan(B_(y)/B_(x)). In some embodiments, since the deadreckoning algorithm does not use θ directly but only through sin θ andcos θ, these trigonometric quantities are determined efficiently anddirectly from the magnetic field measurements according to

$\begin{matrix}{{{\sin \; \theta} = \frac{B_{y}}{\sqrt{B_{x}^{2} + B_{y}^{2}}}}{{\cos \; \theta} = {\frac{B_{x}}{\sqrt{B_{x}^{2} + B_{y\;}^{2}}}.}}} & (4)\end{matrix}$

Additionally, certain embodiments of the navigation system comprise athree-axis magnetic field sensor that measures the vertical magneticfield component B_(z) in addition to the field components in thenavigation plane 350. Such embodiments can determine the magnitude ofthe local field according to B=√{square root over (B_(x) ²+B_(y) ²+B_(z)²)} and the angle φ according to φ=arctan(B_(z)/√{square root over(B_(x) ²+B_(y) ²)}). As further discussed with reference to the magneticsensor signal conditioning module 208 (FIG. 2A), various embodimentscompare the measured field magnitude (and/or the angle φ) to thecorresponding known or measured local values of the geomagnetic field B₀to determine the reliability of the magnetic measurements. If themeasured values do not agree with the known geomagnetic values (towithin a tolerance), the magnetic field measurements are rejected ashaving unacceptably large errors. Such anomalous magnetic fieldmeasurements may be due to the presence of nearby metallic objects (suchas automobiles) or buried metal plates (such as buried steel reinforcingbars).

b. Position Reset To Reduce Error Accumulation

As the navigation system tracks the movement of the object, errors inthe object's position will accumulate due to sources such as, forexample, measurement errors in the magnetic field components, the speed,and the heading, timing errors, and numerical integration errors.Accordingly, the measured position of the object, as determined by thenavigation system, will begin to depart from the true position of theobject.

Certain preferred embodiments reduce the accumulated error by resettingthe position of the object to be a known reference position at varioustimes or at various locations. Following the position reset, the systemdetermines subsequent positions via dead reckoning. By occasionallyresetting the object position, any error accumulated up to the resettime is eliminated (or at least reduced) from the system. Embodiments ofthe navigation system that implement a position reset procedureadvantageously can determine the object's position more accurately andreliably.

In some embodiments, markers or beacons (e.g., the markers 130 a-130 c,the transmitters 134, and/or the access points 136 shown in FIG. 1) aredisposed throughout the tracking area, and if an object passes within aspecified range of the marker or beacon, the navigation system performsthe position reset procedure to reduce accumulated error. In theembodiment of the navigation system 200 a schematically illustrated inFIG. 2A, the reset procedure is implemented in the location reset module232. In certain embodiments, the position reset markers are magneticmarkers as further described below.

Position reset information can be communicated to the navigation systemfrom sources other than (or in addition to) magnetic markers. Forexample, transmitters (or transceivers) disposed throughout the trackingarea can communicate reference positions (or other information) via RF,VLF, or other suitable signals. The transmitters may be part of ananti-theft system such as, for example, an EAS system and/or a perimeterconfinement system. In other embodiments, position information iscommunicated via optical, infrared, and/or microwave signals or acousticsignals (e.g., ultrasound).

c. Improved Position Determination

Certain embodiments of the navigation system utilize one or morecontrol-based algorithms to determine a more reliable estimate of theobject's position. For example, embodiments of the system can beconfigured to use information related to the object's past positions(and/or speeds, headings, etc.) to provide an “optimal” or “best-fit”estimate of the object's present position. As is well known in the art,such optimal or best-fit estimates may utilize various signal processingor control theory methods. For example, some embodiments of the systemuse one or more filters to reduce the effects of measurement noise andto provide more reliable position data. Filters include, but are notlimited to, analog filters or digital filters such as recursive (IIR)and non-recursive (FIR) filters. Certain embodiments use various“predictor-corrector” algorithms such as, for example, a Kalman filter,to provide improved position determinations. In the embodimentschematically illustrated in FIG. 2A, the error correction module 228may be configured to implement one or more of these algorithms.

In one embodiment, measurement errors are reduced by averaging speedand/or heading data. For example, if the variance corresponding to aheading measurement θ_(i) is σ_(i) ², an improved estimate of thepresent heading di can be determined from a weighted average of theprior M measurements where the weighting coefficients are the inversemeasurement variances:

$\begin{matrix}{{\hat{\vartheta}}_{i} = {\frac{\sum\limits_{j = 0}^{M - 1}\frac{\theta_{i - j}}{\sigma_{i - j}^{2}}}{\sum\limits_{j = 0}^{M - 1}\frac{1}{\sigma_{i - j}^{2}}}.}} & (5)\end{matrix}$

Analogous formulas can be used for any other measured quantity. In someembodiments, these averaging methods are implemented in the positiondetermination module 224 and/or the error correction module (FIG. 2A).The averaging formula in Eq. (5) is intended to be an example of thetype of averaging or smoothing that can be applied to measured data andis not intended to limit the scope of averaging, filtering, or othererror correction methods that can be utilized by embodiments of thenavigation system.

d. Navigation Systems For Wheeled Objects

Certain embodiments of the navigation system are configured to track theposition of a wheeled object. FIG. 3 illustrates a wheel 310 movingalong the path 340 in the navigation plane 350. As with the examplediscussion above, it is assumed that the navigation plane 350 ishorizontal and lies in the X-Y plane of the Earth-based coordinatesystem. Methods for tilted navigation planes are readily developed usingstandard geometric and trigonometric calculations.

The wheel 310 is assumed to be generally circular, having an outerradius r, and a corresponding circumference 2πr. The radius r can bemeasured and provided to the navigation system. The wheel 310 rotatesabout a central rotation axis 370. The (x,y,z) coordinate system 330attached to the moving wheel is oriented so that the x-axis points inthe direction of motion, the y-axis is parallel to the rotation axis370, and the z-axis is mutually perpendicular to the x- and y-axes. Inthe following example discussion, it is further assumed that the wheel310 is oriented generally vertically, e.g., the rotation axis 370 isgenerally parallel to the X-Y plane. In this case, the z-axis isvertical and parallel to the Z-axis (e.g., it is parallel to the localgravitational acceleration vector).

The wheel 310 rotates about the rotation axis 370 at an angular velocityf indicated by arrow 375. The angular velocity f may be measured inrevolutions per unit time. In other embodiments, the angular velocity fis measured other suitable units such as radians per unit time. Exceptas further described herein, it is assumed that there is sufficientfriction between the tracking area 360 and the wheel 310 so that thewheel 310 rotates without slipping, sliding, or skidding. This type ofkinematical motion is commonly known as pure rolling motion. In purerolling motion, for every rotation of the wheel 310 through a full 360degrees, the center of the wheel 310 moves a distance equal to thewheel's circumference 2πr. Accordingly, by combining knowledge of theamount of the wheel's rotation with knowledge of the wheel's heading,the position of the wheel (and the object to which it is attached) canbe determined.

It is convenient to use a rotation angle ψ that measures the anglethrough which the wheel 310 has rotated during its motion (see FIG. 3).The rotation angle is related to the angular velocity f and the time tby ψ=∫_(t) ₀ ^(t)f dt. The angle ψ, in some embodiments, is measured bythe wheel rotation sensor 212 (FIG. 2A). In pure rolling motion, thespeed of the object is v=2πf r. Substituting this relation for ψ intoEqs. (1) and (2) permits them to be rewritten in an equivalent form interms of the rotation angle rather than the time t. For example, Eq. (2)for the object's position can be written in the following form

$\begin{matrix}{{X = {X_{0} + {2\pi \; r\; {\sum\limits_{i}{\cos \; \theta_{i}\Delta \; \psi_{i}}}}}}{Y = {Y_{0} + {2\pi \; r{\sum\limits_{i}{\sin \; \theta_{i}\Delta \; {\psi_{i}.}}}}}}} & (6)\end{matrix}$

Embodiments of the navigation system utilizing Eq. (6) are advantageous,because the system need not keep track of the time but need only trackthe amount of wheel rotation Δψ_(i) between heading measurements. Suchembodiments may beneficially conserve power resources, because a timingsystem (e.g. the timing system 216 in FIG. 2A) is not required.

In certain embodiments, Eq. (6) can be further simplified, because theheading measurements are taken whenever the wheel rotates by a fixedamount (e.g., every 30 degrees of wheel rotation). In such embodiments,Δψ_(i) is a (known) constant, and the position of the object isdetermined simply by summing the cosine (or sine) of the heading angle.For example, in certain preferred embodiments, the wheel rotation sensor212 (FIG. 2A) comprises one or more bumps or cams that compress apiezoelectric sensor as the wheel 310 rotates. If there are N bumps orcams disposed substantially symmetrically about the wheel, the object'sposition may be updated according to

$\begin{matrix}{{X = {X_{0} + {A\; {\sum\limits_{i}{\cos \; \theta_{i}}}}}}{{Y = {Y_{0} + {A{\sum\limits_{i}{\sin \; \theta_{i}}}}}},}} & (7)\end{matrix}$

where the constant A=2πr/N is provided to the system. Navigation systemsimplementing Eq. (7) are beneficial, because they can incorporaterelatively few mechanical and electrical components, they can rely onlyheading measurements and do not need independent timing and/or speedmeasurements, and they can utilize a computationally efficient positiondetermination algorithm.

FIG. 4 illustrates a flowchart for one embodiment of a navigationprocess 400 for a wheeled object. This navigation process 400 can beimplemented by the processor 220 (FIG. 2A) or by other suitablecontrollers. Although certain aspects of the process 400 will beillustrated in the context of a shopping cart and a retail store, thisis for purposes of explanation only and is not intended as a limitationon the process 400.

The navigation process 400 starts at Block 404 when the system receivesa start navigating signal, for example, when the cart exits the store.In Block 408, a clock is set to the current time and begins timing. Thetiming Block 408 is shown in phantom, because it is optional. Forexample, navigation systems utilizing a dead reckoning algorithm basedon Eq. (7) do not require times or elapsed times to determine objectposition.

In Block 412, the position of the object is set to a known value fromwhich subsequent dead reckoning positions are calculated. This positionmay correspond to the initial position of the object (e.g., the positionof the store's exit) or to a known reference location in embodimentsimplementing a position reset procedure.

The dead reckoning algorithm is implemented in Blocks 416 to 428. Forexample, in the embodiment illustrated in FIG. 4, sensors in the wheelcommunicate a signal or pulse indicative of an amount of wheel rotation.Magnetic field sensors determine the components of the local magneticfield (Block 420), and determine the wheel's heading (Block 424) duringthe wheel's rotation. Heading can be determined using the techniquesdiscussed for example with reference to Eq. (4), and the system canimplement procedures to correct heading errors such as those discussedwith reference to Eq. (5). In some embodiments, the magnetic field ismeasured many times (e.g., at a sampling rate in the range of about 10Hz to about 250 Hz), and the heading is calculated by suitable averagingor filtering methods (as described with reference to the magnetic fieldsensor signal conditioning module 208 shown in FIG. 2A). In otherembodiments, one (or a small number of) magnetic field measurements aretaken for each wheel rotation pulse.

In Block 428, the coordinates of the object are updated based on theamount of wheel rotation and heading using, for example, algorithms suchas Eqs. (6) or (7). In other embodiments, an average object speed isdetermined based on the amount of wheel rotation during an elapsed time,and the coordinates are updated according to, e.g., Eq. (2).

Additionally, in Block 428, the process 400 may perform other actionsbased on the object's position such as, for example, activating ananti-theft system if the updated coordinates are outside a confinementperimeter.

In Block 432, the process 400 inquires whether a position reset signalis received (e.g., as part of an error reset procedure). If such asignal is received, the process 400 returns to Block 412 and resets theobject's position to be the received reference position. Subsequent deadreckoning is measured from the reference position, which reduces (oreliminates) errors accumulated up to that point. If a position resetsignal is not received, the process 400 continues to Block 436 andevaluates whether to continue navigating. In most cases the answer isaffirmative, and the process 400 returns to Block 416 to determine thenext updated position as the wheel continues to turn. However, if theprocess 400 receives a signal to stop navigating, the process 400terminates (Block 440). A stop navigating signal may be sent, forexample, when the cart reenters the retail store. By not navigatingwithin the store (where it is less likely to be stolen), the systembeneficially conserves power. In some embodiments, a stop navigatingsignal is sent if the cart is motionless for a predetermined time period(e.g., the cart has been left unattended in the lot by a customer),which also beneficially reduces power consumption. Additionally, a stopnavigating signal may be sent if power resources drop to an unacceptablylow value.

In some embodiments suitable for use on wheeled object such as carts,some or all portions of the process 400 are performed by one or moreprocessors or controllers disposed in or on the cart. For example, incertain embodiments, the process 400 is carried out by a processordisposed in the wheel of the cart. In other embodiments, some or all ofthe processing circuitry is spatially distributed in the object, forexample, by disposing some or all of the processing circuitry in thewheel, and/or in a wheel assembly (e.g., a caster or a fork), and/or inother portions (e.g., the handlebars or the frame). In one embodiment,the processor and the heading and motion sensors are disposed within thesame wheel, while in another embodiment, the processor, heading, andmotion sensors are distributed among different wheels. Many variationsare possible.

e. Perimeter Detection

In certain embodiments, the navigation system is configured to determinewhether the object is located inside or outside a tracking area. Suchembodiments can advantageously be used with an anti-theft systemdesigned to prevent the object from being transported outside thetracking area.

In one embodiment, the tracking area can be approximated by a circle ofradius R surrounding a central location having coordinates (X_(c),Y_(c)). The navigation system can determine whether the object isoutside the tracking area by evaluating whether

(X−X _(c))²+(Y−Y _(c))² ≧R ².   (8)

In an embodiment illustrated in FIG. 5A, the tracking area isapproximated as a rectangle 504 having a perimeter 508 and a center 516.The rectangle 504 is adjacent a mean exit point 512 of a facility (suchas a retail store). If the facility has a single exit, the mean exitpoint 512 is the center of the exit, whereas if the facility hasmultiple exits, the mean exit point 512 may be defined as a first moment(e.g., an average) of each of the exit's center points.

In certain embodiments, the perimeter 508 is determined by fourparameters: a depth D_(p) from the mean exit point 512 measured straightalong a depth line 524 to the outermost portion of the perimeter 508; awidth W_(p) measured along a width line 528 that is perpendicular to thedepth line 524; an offset O_(p) measured from the rectangle's center 516to the intersection 520 between the depth and width lines 524 and 528;and an orientation angle O_(p) between the direction of the depth line524 and the direction of local geomagnetic North.

In other embodiments, the rectangle 504 is determined by the position offour vertices 530, 531, 532, and 533, labeled “0”, “1”, “2”, and “3,”which have coordinates (X₀,Y₀), (X₁,Y₁), (X₂,Y₂), (X₃,Y₃), respectively.Each pair of vertices defines a straight line having a slope, m. Forexample, the slope between vertex “0” and vertex “1” is denoted by m₀₁,and similarly for other pairs. The parameters D_(p), W_(p), O_(p), andO_(p) can be used to determine the coordinates of the vertices (andvice-versa) using standard trigonometric and geometric calculations.

In certain embodiments, the navigation system determines whether anobject located at a point with coordinates (X,Y) is located within therectangle 504 according to the following test:

-   -   If ((X<X₀) or (X>X₃) then X,Y is not included in the rectangle        504.    -   If ((X<X₁) and (Y>m₀₁(X−X₀)+Y₀) then X,Y is not included in the        rectangle 504.    -   If ((X>X₁) and (Y>m₁₃(X−X₁)+Y₁) then X,Y is not included in the        rectangle 504.    -   If ((X<X₂) and (Y<m₀₂(X−X₀)+Y₀) then X,Y is not included in the        rectangle 504.    -   If ((X>X₂) and (Y<m₂₃(X−X₂)+Y₂) then X,Y is not included in the        rectangle 504.        If none of the above tests fail, then the point X,Y is located        in the rectangle 504. In certain embodiments, if the point is        located outside the rectangle 504, the test is performed once, a        signal is sent to the anti-theft system, and evaluation of the        test is stopped in order to conserve power resources.

In some embodiments, the navigation system is configured to determinewhether the object lies inside or outside one or more regions within theoverall tracking area. In such embodiments, more than one set ofperimeters may be input to the system. For example, it may be desirableto provide a notification (such as an alarm) as the object approaches aspecified perimeter (such as an outer confinement perimeter). In oneembodiment, a notification perimeter, which lies a predetermineddistance inside the confinement perimeter, is provided to the system. Inthis embodiment, when the object crosses the notification perimeter, anotification is given (e.g. an alarm is sounded) to alert the personmoving the object that an outer boundary is being approached. If theobject subsequently crosses the confinement perimeter, further actioncan be taken, e.g., one or more of the object's wheels can be locked.Other variations are possible. For example, in an embodiment, thetracking area is approximated as an outer area that comprises one ormore inner areas. The inner and outer areas each have correspondinginner and outer perimeters. In some embodiments, the navigation systemtracks whether (and for how long) the object is within the inner areasand whether (and when) the object has left the outer area.

In certain embodiments, the perimeter of the tracking area isapproximated using portions of one or more lines, arcs, curves, planes,polygons, and/or other geometric figures. For example, in someembodiments the tracking area is approximated as a planar polygon havinga set of vertices. Each successive pair of vertices defines an edge ofthe polygon. In some embodiments, the vertices are referenced by a setof Cartesian coordinates or by a set of angles and directions. A numberof computationally efficient algorithms for determining whether a pointlies within a polygon (the so-called “point-in-polygon” problem) arewell-known in the numerical and graphical arts and can be implemented invarious embodiments of the navigation system. For example, in oneembodiment, the system calculates the number of times an imaginarystraight ray extending from the point (to infinity) intersects the edgesof the polygon. The point is inside the polygon if the number is odd,and the point is outside the polygon if the number is even. Otheralgorithms can be used as well.

Although the examples discussed herein refer to a tracking areasurrounded by a perimeter, it is appreciated that some embodiments maybe configured to determine the object's position in a three-dimensionaltracking volume. In such embodiments, the navigation system calculates,for example, all three (X,Y,Z) coordinates of the object. In suchembodiments, the perimeter of the tracking volume generally correspondsto a boundary surface, which likewise can be approximated by portions oflines, arcs, curves, planes, and/or by portions of surfaces of geometricfigures such as spheres, ellipsoids, cubes, parallelepipeds, etc.

f. Tracking Area And Perimeter Coordinates

The perimeter of a tracking area can be provided to the navigationsystem in many different ways, for example, by inputting a set ofcoordinates corresponding to the vertices of a polygon approximating thetracking area. The coordinates of the perimeter can be determined, forexample, by direct measurement (e.g., a survey) or by reference to a mapor GPS information or by other suitable methods.

In embodiments using magnetic sensors to determine object position, thecoordinates of a point measured by dead reckoning can differ from thetrue coordinates due to a number of factors. For example, carts aremetallic objects and can retain a remnant permanent magnetization thatcan cause position measurements to systematically differ from truemeasurements. Geological conditions can cause the local geomagneticfield at a site to deviate in magnitude and/or direction from the meangeomagnetic field in the surrounding region. In addition, surroundinginfrastructure (e.g., roads, buildings, etc.) can lead to magneticdeviations on even smaller scales. Such deviations can lead to offsetsbetween measured and true positions. Embodiments of the navigationsystem can correct for such effects by incorporating boundary coordinatedata that accounts for such deviations.

In some embodiments, coordinates of the perimeter of the tracking areaare determined by reference to a detailed map, which (optionally) may becorrected for the effects of the local geomagnetic field. FIG. 5B is aflowchart illustrating an embodiment of a method 540 for determiningcoordinates in a tracking area. In Block 544, the tracking area isdefined logically. For example, the general shape and extent of thetracking area is selected, and a method for representing the trackingarea (e.g., via a polygon) is chosen. The complexity of the trackingarea, which entrances and exits to include, and where referencelocations are positioned are addressed at this step. In Block 548, asuitable map is selected. The map can come from many sources such as,for example, a survey, GPS measurements at the site, street maps,atlases, or from commercial mapping providers. In an embodiment, mapsare generated from data provided by the Internet service Google Earth(Google Corp., Mountain View, Calif.) or by other similar services. InBlock 552, the map is used to calculate map coordinates corresponding toa portion or portions of the tracking area. The map may also be used todetermine coordinates for other suitable locations in or around thetracking area. The map coordinates may comprise Cartesian or othersuitable coordinates or may comprise a set of distances and angles orother directional suitable system. In some embodiments, the mapcoordinates for portions of the tracking area are communicated to thenavigation system, whereas in other embodiments, the map coordinates arestored on a central processor, which receives position information fromthe navigation system.

In certain embodiments using magnetic techniques to determine heading,it is beneficial to correct the map coordinates for effects of the localmagnetic field including, for example, geomagnetic declination(deviation between magnetic North and true North), geomagneticinclination (deviation of the magnetic field from the horizontal),and/or other magnetic deviations and anomalies. FIG. 5B shows in phantomadditional and optional steps implemented in certain embodiments of themapping method 540. In Block 556, a source of suitably detailedgeomagnetic data is provided. In an embodiment, up-to-date geomagneticdata from the National Geophysical Data Center (Boulder, Colo.) is used.In other embodiments, magnetic measurements can be taken at the site toprovide more detailed information on local magnetic conditions. In Block560, the map coordinates determined in Block 552 are corrected formagnetic effects. These updated coordinates can be provided to thenavigation system and/or a central controller as previously described.

FIG. 5C illustrates a flowchart showing a training procedure 570 thatcan be implemented instead of (or in addition to) the mapping method 540discussed with reference to FIG. 5B. The training procedure 570 can beused to “teach” the navigation system the values of coordinates (e.g.,of a perimeter, reference location, etc.) as they would actually bemeasured by a navigation system disposed on an object. The trainingprocedure begins in Block 572, by defining the tracking area logicallyas described above for Block 544 of the mapping process 540. In Block574, a training run is performed wherein the object is physically movedaround the perimeter of the tracking area while the navigation system isoperating. At one or more selected locations, the coordinates of thelocation as actually measured by the navigation system are recorded andsuitably stored (Block 578). In one embodiment, the coordinates arestored by the navigation system, while in other embodiments, thecoordinates are stored on a portable, hand-held device. In someembodiments, the selected coordinate locations can be marked by, forexample, a magnetic marker, RF transmitter, an access point (AP), orother suitable indicator.

Because the coordinates recorded in Block 578 are taken directly fromthe navigation system on a training run, these coordinates betteraccount for features of the particular tracking area at a siteincluding, for example, local topography and local magnetic fielddeviations (including magnetization of the object). Accordingly, thesecoordinates are better representative of the coordinates that areactually determined during normal use of the navigation system. Trainingruns can be performed to measure the coordinates of any suitablelocation in or around the tracking area. In certain embodiments,training runs are repeated one or more times to determine a moreaccurate set of coordinates. For example, the training run may navigatethe perimeter in both a clockwise and a counterclockwise direction, andthe resulting coordinate values may be suitably averaged. Training runscan be repeated as necessary when features of the tracking area change.

In Block 582, the coordinate data is transferred to a navigation systemor a central controller or other suitable device. In some embodiments,the training procedure 570 is performed with each object (e.g., eachshopping cart), and each object is configured to store an individualizedset of coordinates. However, if there are many such objects (e.g. aretail store with numerous shopping carts), it may reasonably be assumedthat each object will respond similarly to the local magnetic field.Accordingly, in some embodiments, the training process is performed onone (or a small group) of objects. The coordinate data taken from thetrained objects is then transferred into the navigation systems of theremaining objects. In certain embodiments, the training procedure 570 isrepeated from time-to-time to ensure that the navigation system hasaccess to up-to-date coordinates.

In some embodiments, an access point (AP) is used to communicatecoordinate data to the objects. For example, the coordinate data takenfrom a training run performed by one object can be transferred to theAP, which then communicates the coordinate data to the other objects. Inother embodiments, an AP can communicate up-to-date coordinate data tothe object each time the navigation system begins navigating. Forexample, as shown in FIG. 1, the access point 136 can communicatecurrent coordinate data to a shopping cart 122 whenever the shoppingcart 122 leaves the exit 126 and begins navigating in the parking lot114. In such embodiments, the AP 136 can be used to communicate otherinformation to (and/or from) the carts 122.

In certain preferred embodiments, the coordinates of a boundary or areference location are determined by a combination of the mapping method540 and the training method 570. For example, an initial set ofcoordinates can be determined from a geomagnetically corrected map usingthe mapping method 540. Corrections to the map coordinate values aredetermined by the training procedure 570. The training procedure 570 canbe repeated as needed, e.g., if nearby construction causes additional ordifferent magnetic field deviations or if the remnant magnetization ofthe objects changes with time.

Other methods of determining the coordinates of the boundary or otherreference locations in the tracking area are possible. The discussionherein is intended to be illustrative of some examples of these methodsand is not intended as a limitation on the scope of such methods.

V. Magnetic Markers

A facility may wish to communicate information to systems, devices, andobjects that move or are otherwise transported throughout the facility.Accordingly, it may be advantageous to dispose throughout the facilityone or more markers configured to provide information to other systems,devices, or objects. In some cases, this information relates to aposition within the facility. For example, as has been described, it maybe advantageous to communicate reference position information to anavigation system to reduce the accumulation of navigation errors. Insome embodiments, the markers may be disposed in certain locations wherethe facility desires to track the position of objects. For example, aretail store can place markers at the entrance and/or exit of selectedaisles or checkout lanes. The navigation system can detect an entrancemarker and start navigating in the aisle until the system detects anexit marker and it stops navigating. By navigating only in certainlocations, the navigation system beneficially reduces power consumption.

However, the facility may wish to communicate information to systemsother than navigation systems. For example, as part of a loss preventionsystem, a retail store may configure the anti-theft system on a shoppingcart to lock its wheels if it senses a signal from a marker at thestore's perimeter. Additionally, a retail store may wish to determinewhich shopping carts have passed through a checkout lane before exitingthe store. The retail store can dispose a marker at the checkout laneand a marker at the exit. Sensors in the cart can detect the presence ofthe markers, and an anti-theft system can be activated if a cart passesthe exit marker without first having passed the checkout lane marker.Moreover, the facility may wish to mark selected points within thefacility, such as, for example, entrances and exits to aisles in aretail store or various patient service locations within a hospital. Bymarking such points and providing a sensor in suitable objects, thefacility can determine, for example, which objects have passed themarker, as well as the time of passage and for how long the object wasin the vicinity of the marker.

A system of markers has many additional uses. For example, a retailstore can provide targeted advertising to customers who travel downselected aisles. In addition, the store may desire to detect patternssuggestive of shoplifting (e.g., where a customer places an item in ashopping cart and passes through a checkout lane, but later fills thecart with additional merchandise, and leaves the store without payingfor the additions). By monitoring the times when objects pass certainlocations, the floorplan of the facility can be organized to improveease of use, traffic flow, and access to highly desired items.Facilities may wish to perform data mining on the information acquiredfrom a marker system to better understand customer choices and behavior.Warehouses can use a marker system to track the flow of inventory. Manyvariations are possible.

Accordingly, it is desirable to provide a reliable design for a markerthat can provide information to other systems operating within afacility.

a. Directional Marker

FIG. 6 illustrates a partial cross-section of an embodiment of amagnetic marker 600. The marker 600 comprises two magnetic elements 604a and 604 b disposed within a housing 606. The housing 606 comprises atop cover 608 and a bottom plate 616. A filler material 612 is disposedwithin the housing 606 and substantially surrounds the magnetic elements604 a, 604 b. Although the marker 600 comprises two magnetic elements604 a, 604 b, any other number of magnetic elements can be used. Forexample, other embodiments comprise one, three, four, five, six, seven,eight, nine, ten, or more magnetic elements.

In the embodiment shown in FIG. 6, the magnetic elements 604 a and 604 bcomprise permanent magnetic material. In an embodiment, the magneticmaterial comprises a flexible magnetic strip or a portion of a flexiblemagnetic sheet. The flexible magnetic material may comprise, forexample, ferrite in a plastic binding (e.g., vinyl). In otherembodiments, the magnetic material is a ferromagnetic metal or aceramic. In one embodiment, the magnetic elements 604 a, 604 b arenon-permanent magnets, such as electromagnets. It is preferable, but notnecessary, for the magnetic material to support higher magnetic energiesin order to resist demagnetization caused by ambient electromagneticfields (e.g., AC magnetic fields produced by motors). The magneticelements 604 a and 604 b can be attached to the bottom plate 616 byadhesives or other suitable means to prevent slipping and to preservethe spatial orientation and spacing of the elements 604 a, 604 b. Forexample, in the embodiment shown in FIG. 6, the magnetic elements 604 aand 604 b are separated by a region 624 that comprises the fillermaterial 612. The spacing, configuration, and magnetic orientation ofthe magnetic elements 604 a, 604 b can be selected so that the magneticmarker 600 provides a suitable magnetic signal to other systems orcomponents. In one embodiment, the magnetic element 604 b has a width ofabout 0.75 inches, and the housing is about 0.25 inches in height.

In order for magnetic flux from the magnetic elements 604 a and 604 b topenetrate to regions 602 outside the marker 600 so as to a convey amagnetic signal, at least a portion of the housing 606 should comprise anonmagnetic material. As shown in FIG. 6, the top cover 608 comprises anonmagnetic material, for example, a non-ferromagnetic substance such asaluminum or non-magnetic stainless steel. Other materials havingsufficiently small magnetic susceptibilities may also be used such as,for example, plastic compounds. In various embodiments of the housing606, the bottom plate 616 may comprise either a non-magnetic or amagnetic material. For example, in one embodiment, the bottom plate 616comprises mild steel, which substantially shields regions below themarker 600 from magnetic flux from the magnetic elements 604 a, 604 b. Abenefit of using a magnetic bottom plate 616 is that magnetic fieldsarising from magnetized objects disposed below the marker 600 are(partially) shielded by the bottom plate 616 and do not penetrate intothe region 602 above the marker 600.

The magnetic marker 600 illustrated in FIG. 6 is configured for use inan area traversed by wheeled carts, such as the entrance/exit of aretail store. Accordingly, the top cover 608 of the housing 606 isselected to have a slightly convex shape to enable wheeled carts toeasily roll over the marker 600. Other shapes are possible depending onwhere the marker is placed and for what purposes it is used. Forexample, some embodiments of magnetic markers are buried just below thesurface of a floor (or in a wall) and may have almost any suitable shapesuch as generally rectangular or cylindrical.

The filler material 612 substantially fills the space within the housing606 surrounding the magnetic elements 604 a and 604 b. The fillermaterial 612 preferably is non-magnetic and may comprise, for example, apolyurethane foam, a plastic (e.g., nylon), or other suitable cushioningor padding material. The filler material 612 provides support againstcompression stresses applied to the marker 600 (e.g., the weight ofshopping carts). In embodiments not subject to substantial stress, thefiller material may be omitted.

The magnetic fields provided by the magnetic elements 604 a and 604 bcan be selected to provide a suitable magnetic signal from the marker600. In the embodiment shown in FIG. 6, the magnetic element 604 a (604b) is arranged with its North pole pointing upward (downward) asindicated by arrow 620 a (620 b). The elements 604 a, 604 b are spacedapart by the region 624. By selecting elements with different strengthsand by selecting the configuration (e.g., direction and spacing) of theelements, many different magnetic signals can be produced. For example,the orientations of the North poles of the elements 604 a, 604 b couldeach be flipped 180 degrees, or the elements 604 a, 604 b could beconfigured so that their magnetic axes are horizontal (e.g., the arrows620 a, 620 b would be horizontal). Many configurations for one or moremagnetic elements can be selected, and the configuration and orientationshown in FIG. 6 is intended to be illustrative and not to be limiting.

As is well known, the total magnetic field produced by more than onemagnetic element is the vector sum of the magnetic fields of theindividual magnetic elements. FIG. 7A illustrates magnetic field lines704 arising from the marker 600 shown in FIG. 6. Arrowheads on themagnetic field lines 704 indicate the direction of the magnetic field.Additionally, the magnetic field is relatively more intense in regionswith a high density of field lines as compared to a region with a lowdensity of field lines. As shown in FIG. 7A, the magnetic fielddirection is from the left to the right in region 706 located above andbetween the elements 604 a, 604 b. The field lines 704 are relativelyclosely spaced in the region 706, which indicates the magnetic field isrelatively strong there. Accordingly, the predominant magnetic signalfrom the marker 600 is a magnetic field pointing from left to right asindicated by arrow 708.

FIG. 7B is a contour plot showing the magnitude (strength) of the totalmagnetic field vector produced by the marker 600. The magnitude of thefield is roughly constant on oval-shaped sections 710 surrounding themarker 600, and the field strength decreases with distance away from themarker 600. Because the oval sections 710 are elongated in the directionof the arrow 708, a magnetic sensor moving above the marker 600 (e.g.,along a path indicated by double-headed arrow 714) will sense a fieldthat is roughly constant in the region 706.

The fields shown in FIGS. 7A and 7B are produced under the assumptionsthat the bottom plate 616 of the marker 600 is not ferromagnetic andthat there are no other substantial magnetic disposed below the bottomplate 616. Such magnetic elements would distort the field above themarker 600 somewhat (e.g., in the region 706), but would notsignificantly effect the overall shape, direction, or strength of themagnetic field above the marker 600.

The marker 600 advantageously indicates both a position and a direction(e.g., the direction of the arrow 708). By placing the marker 600 in aselected location in a facility and by orienting the marker 600 so thatits predominant magnetic field direction points in a desired direction,an object passing the marker 600 can detect the presence and thedirection of the magnetic signal. For example, in an embodiment suitablefor a retail store, the marker 600 is located at an entrance/exit withthe magnetic signal direction 708 pointing out the door (e.g., towardthe parking lot). A magnetic field sensor disposed on a cart can detectthe magnetic signal and determine whether the cart is entering orexiting the store. In similar fashion, the marker 600 can be located atthe entrance or exit of an aisle, checkout lane, storeroom, or othersuitable location in a facility.

Embodiments of the marker 600 are especially suitable for use with thenavigation system disclosed herein, because they enable embodiments ofthe navigation system to determine when to begin operating (e.g., whenexiting the store), when to stop operating (e.g., when entering thestore), or when to reset position (e.g., when passing a referencemarker).

The magnetic signal from a marker can be detected by any suitablemagnetic sensor, such as, for example, inductive sensors,magnetoresistive (MR) sensors, Hall effect sensors, search coils, fluxgate sensors, and/or microelectromechanical systems (MEMS) magneticsensors. In certain embodiments, the magnetic sensor comprises athin-film solid state sensor such as an anisotropic magnetoresistance(AMR) sensor and/or a giant magnetoresistance (GMR) sensor.

In various embodiments, the magnetic field produced by the marker 600may have a strength (at the position of an object's magnetic sensor) ina range from about 1 milliGauss to about 20 Gauss. In certainembodiments, the marker 600 has a field strength less than about 15Gauss to avoid degradation of the signal from the magnetic sensors,particularly if AMR magnetic sensors are used.

Although the magnetic marker 600 comprises a housing 606, otherembodiments do not include a housing. Markers can be embedded, forexample, within walls or floors of a structure, which acts similarly tothe housing 600 to support and protect the magnetic elements.

b. Perimeter Marker

Many other magnetic markers are possible. FIGS. 8A and 8B illustrate themagnetic signal produced by a marker 800, which comprises a singlemagnetic element 802 oriented so that its magnetic axis is horizontal(e.g., the North pole of the element 802 points toward the right). Themagnetic element is disposed below a surface 806 of a suitable trackingarea. In some embodiments, an upper portion of the magnetic element 802is less than an inch below the surface 806. Magnetic sensors in objects,such as wheeled carts, pass above the surface 806 at a level shown bydouble-headed arrow 814. It is preferable, although not required, forthe magnetic sensors to be placed as close to the surface 806 as ispractical, because the magnetic dipole field strength decreases withdistance. Also, placing the sensors close to the surface 806 can improvea signal-to-noise ratio of the magnetic field measurements. For example,reducing the magnetic sensor height above the surface 806 from 0.7inches to 0.55 inches doubles the field strength at the sensor in oneembodiment. In some embodiments, the sensor level 814 is disposed aboutone inch above the surface 806, and in some preferred embodiments, isdisposed about 0.7 inches above the surface 806. In other preferredembodiments for use with a shopping cart having a standard, 5-inchwheel, the sensor level 814 is about 0.55 inches to about 0.6 inchesabove the surface 806.

FIG. 8A illustrates magnetic field lines 804, and FIG. 8B illustratescontours of magnetic strength 810. As can be seen by comparing FIGS. 8A,8B with FIGS. 7A, 7B, the magnetic signal produced by the marker 800 issubstantially different in shape and direction from the magnetic signalproduced by the marker 600. In addition, the field strength contours 810in FIG. 8B are elongated vertically, so the magnetic signal is typicallyof shorter duration.

The magnetic signal produced by the marker 800 is distinguishable fromthe magnetic signal produced by the marker 600. Accordingly, certainembodiments use the markers to indicate different types of locations. Incertain embodiments, the marker 800 is used to mark the position of theperimeter of a tracking area. In certain such embodiments, it can beused to replace (or supplement) existing perimeter markers such as, forexample, buried VLF transmission wires. In one embodiment, the marker800 is buried with the magnetic axis of the magnetic element 802pointing outward so that a cart can determine whether it is exiting orentering the tracking area.

In certain embodiments, the magnetization per unit length of the marker800 may vary along the marker's length. An object crossing the marker800 can detect the degree of magnetization and perform a suitableaction. For example, the magnetization per unit length can be high inregions where an anti-theft system should be activated (e.g., by lockinga wheel), and the magnetization per unit length can be low in otherregions where cart passage is permitted.

In some facilities, carts may be physically capable of passing throughcertain exits, but a facility policy may prohibit such passage except incertain circumstances. For example, a facility may have one or moreemergency exits and may wish to determine whether a cart is passing theexit in violation of the facility policy (e.g., in a non-emergency). Insuch cases, the facility may wish the cart to exhibit a differentbehavior than when exiting the perimeter (e.g., a different alarm maysound). A marker having a magnetic signal different from the normal exitsignal (e.g., the signal from the marker 600) may be used in such asituation. Alternatively, such unacceptable exits can be markedsimilarly to the confinement perimeter (e.g., by using the marker 800),in which case an exiting cart will trigger an anti-theft system. Manyvariations are possible, and a facility may utilize markers having awide range of magnetic signals to indicate different physical locationsand/or directions.

c. Magnetic Bar Code Marker

Embodiments of the magnetic markers discussed above can be combined toprovide magnetic signals that convey more information than a singlemarker. For example, in certain embodiments, markers can be combined toproduce a “magnetic bar code” signal that encodes information as aseries of magnetic bits. FIG. 9 schematically illustrates one embodimentof a magnetic bar code marker 900 that comprises a number of magneticmarkers 904 a, 904 b, 904 c, etc. that are configured to represent bitsin the magnetic bar code. In certain embodiments, each marker, such asthe markers 904 a-904 c, represents one bit, although this is not arequirement. Although FIG. 9 shows three magnetic markers, any number ofmarkers can be used in other embodiments (e.g., 2, 4, 8, 10, 12, 16, ormore) so as to convey a suitable number of bits of information.Accordingly, the three markers shown in FIG. 9 are not intended to be alimitation on the number (or type or configuration) of markers that canbe used or a limitation on the number of bits of information that can becommunicated.

In the embodiment shown in FIG. 9, each of the markers 904 a-904 ccomprises a pair of magnetic elements. The magnetic elements can begenerally similar to the magnetic elements 604 a and 604 b. For example,the magnetic elements may comprise a permanent magnetic material suchas, for example, a portion of a flexible magnetic strip. In oneembodiment suitable for use in retail stores, the magnetic strip isabout 0.25 inches in width and about 0.03 inches in height. The magneticelements within the magnetic markers 904 a-904 c and/or the magneticmarkers themselves can be separated by a spacer material 916, whichcomprises plastic (e.g., nylon) in one embodiment. Other materials canbe used. As shown in FIG. 9, the magnetic elements may be disposed belowa surface 912 over which objects move. The surface 912 preferably isnon-magnetic so that magnetic flux from the magnetic markers 904 a-904 cextends into the region above the surface 912 so as to produce adetectable magnetic bar code signal. As shown in FIG. 9, the surface 912is horizontal, but this is not a limitation. Any of the magnetic markersdisclosed herein can be used in any orientation including, for example,horizontal, vertical, or at any other angle.

The magnetic bar code signal encodes information as a sequence of bitsthat are read as an object having a magnetic sensor moves relative tothe magnetic bar code marker 900. In certain embodiments, the magneticbar code comprises data bits, start/stop bits, and/or error correctionbits. The data bits encode the information to be communicated to theobject, generally as a sequence of “1”'s and “0”'s. Any number of databits can be used. The start and/or stop bits may be included at thebeginning and/or the end of the sequence of data bits to enable theobject to determine if it is reading the sequence of data bits forward(from the most significant bit) or backward (from the least significantbit). The start/stop bits can have the same magnetic signature as a databit (e.g., a “1” or a “0”) or may have a different magnetic signature.In some embodiments, the bar code signal includes an error correctingcode, which may comprise, for example, one or more checksum bits thatencode a numerical value corresponding to the data bits.

The magnetic markers 904 a-904 c can be configured to represent a “1”bit or a “0” bit, for example, by orienting the magnetic axes of themagnetic elements in a distinctive configuration. In the embodimentshown in FIG. 9, a “1” bit is represented by a pair of magnetic Northpoles arranged in an “up”-“down” configuration, and a “0” bit isrepresented by a pair of magnetic North poles in a “down”-“up”configuration (as measured from left to right). In FIG. 9, the markers904 a and 904 b represent “1” bits, and the marker 904 c represents a“0” bit. The orientations of the magnetic fields in the bits are shownas arrows 908 a-908 c. FIG. 9 illustrates one embodiment for configuringmagnetic bits, and other embodiments can use different magneticconfigurations and/or orientations and/or different numbers of magneticelements.

In the embodiment shown in FIG. 9, the magnetic bar code begins with astart bit 904 a and ends with a stop bit (not shown). In thisembodiment, both the start and stop bits are “1” bits, although otherchoices may be used. An object encountering the marker 900 candistinguish the start bit from the stop bit (even though both arerepresented as “1”'s) by measuring the magnetic field arrangement withinthe bit. For example, as shown in FIG. 9, if the bar code marker 900 isfirst encountered at a position corresponding to the start bit 904 a(e.g., from the left in FIG. 9), the object will measure an “up”-“down”field configuration. However, if the bar code marker 900 is firstencountered at a position corresponding to the stop bit (e.g., from theright in FIG. 9, which does not show the stop bit), the object willmeasure a “down”-“up” field configuration. By sensing the magnetic fieldconfiguration in the start and stop bits, an object can readilydetermine whether it is sensing the bar code from the beginning of thesequence (e.g., the most significant bit) or the end of the sequence(e.g., the least significant bit).

The information to be communicated to an object is encoded by the barcode marker 900 as a sequence of data bits beginning with bits 904 b and904 c and continuing for any suitable number of additional bits. In someembodiments, one or more checksum bits are included following the databits. In certain embodiments, from two to thirty two data bits are used.

In certain embodiments, the entire sequence of data bits of the bar codemarker 900 may be a codeword of a forward correction error code. Forexample, in some embodiments, a Hamming code is used. For example, an(11,7) Hamming code allows 128 unique locations to be specified using 13bits, with 11 bits of codeword and a start bit and a stop bit, may beused, particularly in retail store implementations. Because theinformation in the bar code marker 900 generally needs to be readable ineither direction (e.g., from left to right and from right to left) inmany implementations, a variation of the Hamming code that also encodesthe start and stop bits is used in some of these implementations.

The magnetic markers 904 a-904 c have a bit width 930 that can beselected by adjusting the width and spacing of the magnetic elements inthe magnetic markers 904 a-904 c. Additionally, the individual bits areseparated by a bit spacing 934. The bit width 930 and the bit spacing934 can be selected so that a magnetic sensor 920 moving along a path924 can detect the individual bits while moving at a representativespeed. For example, in an embodiment suitable for use in a retail store,the bit width 930 is about 0.6 inches and the bit spacing is about 1inch. In some of these embodiments, eight to twelve bits are used, sothat the magnetic bar code marker 900 has a width of about 12 inches.

The magnetic sensor 920, in some embodiments, comprises a two-axismagnetic sensor configured to detect magnetic field components in thedirections of the x-axis (e.g. the direction of motion of the object)and the z-axis (e.g. perpendicular to the direction of motion). In aretail store environment, the magnetic sensor 920 may be disposed inshopping carts (or other suitable objects) so that the path 924 of themagnetic sensor 920 is about 0.8 inches above the surface 912. In oneembodiment, the magnetic sensor 920 is about 0.65 inches above thesurface 912. Other embodiments utilize distances between about 0.5inches and about 1 inch. Other distances are possible, however, it ispreferable for the sensors to be close to the surface 912 for reasonssimilar to those discussed herein with reference to FIGS. 8A and 8B.

In the example shown in FIG. 9, a magnetic sensor 920 moving across themagnetic bar code from left to right will read the bar code bits (“1”,“1”, “0”, . . . ) by detecting an intense magnetic field in thex-direction in the middle of each bit and a weak field in the regionbetween or outside the bits. In this embodiment, the magnetic sensor 920can discriminate between “1” and “0” bits by detecting a fieldpredominantly to the right for a “1” bit and to the left for a “0” bit.FIG. 10A illustrates magnetic field lines 940 a, 940 b, and 940 ccorresponding to the magnetic bits 904 a, 904 b, and 904 c. FIG. 10Billustrates field strength contours 944 a-944 c corresponding to themagnetic bits 904 a-904 c. FIGS. 10A and 10B further demonstrate aspectsof the magnetic field direction and strength that can be detected by themagnetic sensor 920.

In some embodiments, the magnetic sensor 920 includes a z-axis magneticfield sensor (as shown in FIG. 9) to assist an x-axis sensor indiscriminating bit-fields from extraneous magnetic fields (e.g., thosenot carrying bar code information). For example, as shown in FIG. 10A,the magnetic field at the beginning and end of each individual bit ispredominantly in the z-axis direction (e.g., vertical), while the fieldin the center of each bit is predominantly in the x-axis direction(e.g., horizontal). Certain embodiments of the magnetic sensor 920 usethe z-axis sensor to detect the beginning and end of a bit and thex-axis sensor to determine whether the bit is a “1” or a “0” (e.g.,whether the central field is to the right or to the left, respectively).However, other embodiments of the magnetic sensor 920 include only a1-axis magnetic field sensor (preferably to detect x-axis fields), whilesome embodiments include a three-axis sensor to better discriminatebit-fields from extraneous fields.

If a three-axis magnetic sensor 920 is used, then in some embodimentsthe y-axis sensor is used to determine a crossing angle at which theobject is crossing the horizontal projection of the marker (e.g., if theobject is not traveling parallel to the direction 924 shown in FIG. 9).The magnetic field in the x-direction of the marker may be readilycalculated using the crossing angle.

Although embodiments of the markers 600, 800, and 900 have been shown inFIGS. 6-10B and described as being disposed horizontally (e.g., in afloor) such that objects can pass over them, this is for purposes ofillustration only and is not intended as a limitation on embodiments ofmarkers. For example, embodiments of any of the magnetic markers 600,800, and 900 can be disposed in a ceiling (with objects passing underthem), in walls, in other parts of a structure, building, tracking area(such as a parking lot), or in any other suitable location. Moreover,embodiments of any of the markers can be positioned, configured, andoriented as reasonably necessary so that the marker can provide asuitable signal to an object.

In some embodiments, the magnetic sensor 920 is configured to measurethe bit-fields and to determine the information content in the magneticbar code. The sensor 920 can communicate the bar code information toother systems such as, for example, a navigation system or an anti-theftsystem. In some embodiments, the bar code information comprises a codeidentifying a reference location and providing the values of thelocation's coordinates. An object passing the bar code marker can readthe bar code and use the information, for example, to reset the object'sposition as part of an error correction procedure in a dead reckoningnavigation system. In some embodiments, the information in the bar codewill cause an on-board system to perform a predetermined action such as,for example, sounding an alarm or locking a wheel brake. There are manypossible uses for magnetic bar code markers, and the above examples areintended to be illustrative and not limiting.

In other embodiments, the magnetic sensor 920 communicates signalsindicative of the bar code magnetic fields to another system forprocessing. For example, in one embodiment, the magnetic sensor 920comprises the magnetic field sensor 204 of the navigation system 200 ashown in FIG. 2A. The measured magnetic fields are passed to themagnetic sensor signal conditioning module 208 and then to the processor220 for further processing and decoding of the bar code information. Inanother embodiment, the magnetic fields detected by the magnetic sensor920 are communicated for further processing and decoding to an externalprocessing system (e.g., a central controller) by, for example, an RFdata link.

In some embodiments, a magnetic bar code marker 900 is fabricated as asequence of tiles (having the same magnetic bar code information), whichare disposed adjacent each other to cover a line crossed by vehicles. Insome embodiments, the tiles are rectangular, although other shapes arepossible. In one embodiment, the tiles are 1-foot square tiles,constructed to have a single 7-bit code (with a single bit errorcorrection), which provides 128 unique codes.

In certain embodiments, a two-axis sensor, such as the sensor 920, canbe used to detect the bar code marker 900, but is less suited tomagnetic navigation, and a three-axis sensor may be used if both markerdetection and navigation are desired.

Although the invention(s) have been described in terms of certainpreferred embodiments and certain preferred uses, other embodiments andother uses that are apparent to those of ordinary skill in the art,including embodiments and uses which do not provide all of the featuresand advantages set forth herein, are also within the scope of theinvention(s). Accordingly, the scope of the invention(s) is defined bythe claims that follow and their obvious modifications and equivalents.

1. (canceled)
 2. (canceled)
 3. (canceled)
 4. A method for controllingmovement of a non-motorized cart with regard to a confinement area of aretail environment, the method comprising: providing a non-motorizedcart comprising a navigation system and a movement inhibition system,the navigation system configured to calculate a position of the cart,the movement inhibition system configured to inhibit movement of thecart in response to a signal from the navigation system; transferringconfinement information to the navigation system of the cart, theconfinement information comprising a reference direction and coordinatedata related to the shape and extent of a confinement area of a retailenvironment; calculating, using the navigation system, a position of thecart with respect to the confinement area; and signaling the inhibitionsystem when the position of the cart relative to the confinement areasatisfies an inhibition condition.
 5. The method of claim 4, whereintransferring confinement information to the navigation system furthercomprises moving the cart along at least some of a perimeter of theconfinement area.
 6. The method of claim 4, wherein transferringconfinement information to the navigation system further comprises:moving a training object along at least some of a perimeter of theconfinement area, the training object configured to determine thecoordinate data; and transferring the coordinate data from the trainingobject to the navigation system.
 7. The method of claim 6, wherein thetraining object comprises a second non-motorized cart.
 8. The method ofclaim 6, wherein the training object comprises a hand-held device. 9.The method of claim 4, wherein transferring confinement information tothe navigation system further comprises measuring magnetic fielddeviations related to the confinement area.
 10. The method of claim 4,wherein the inhibition condition is satisfied when the cart is outsidethe confinement area.
 11. The method of claim 4, further comprisingproviding a signal to the navigation system to begin navigation.
 12. Themethod of claim 4, wherein the cart comprises a shopping cart.
 13. Themethod of claim 4, wherein the movement inhibition system comprises abrake configured to inhibit rotation of a wheel of the cart.
 14. Amethod for training a non-motorized cart with regard to a boundary of atracking area for the non-motorized cart, the method comprising:determining a representation of a tracking area for a non-motorizedcart; moving a training object along at least a portion of a boundary ofthe tracking area, the training object configured to determinecoordinates of the boundary; transferring the coordinates of theboundary from the training object to a controller; and transferring thecoordinates of the boundary to a navigation system on the cart.
 15. Themethod of claim 14, further comprising recording, with the trainingobject, a coordinate location of at least one of a magnetic marker,radio frequency transmitter, and access point with respect to theboundary.
 16. The method of claim 14, further comprising moving thetraining object along the portion of the boundary at least twice. 17.The method of claim 16, wherein moving the training object along theportion of the boundary at least twice comprises moving the trainingobject along the portion of the boundary in a clockwise direction andmoving the training object along the portion of the boundary in acounterclockwise direction.
 18. The method of claim 16, furthercomprising: averaging the coordinates of the boundary determined fromeach movement of the training object along the boundary; andtransferring the averaged coordinates to the navigation system.
 19. Themethod of claim 14, wherein the controller is positioned on the cart.20. The method of claim 14, wherein the controller is physicallyseparate from the cart.
 21. The method of claim 14, wherein the trainingobject comprises a second non-motorized cart.
 22. The method of claim14, wherein the training object comprises a hand-held device.
 23. Themethod of claim 14, further comprising: determining, with the navigationsystem, a position of the cart with respect to the boundary; andinhibiting movement of the cart when the position of the cart isdetermined to satisfy a theft condition.
 24. The method of claim 23,wherein the theft condition comprises the position of the cart havingcrossed the boundary.
 25. A system for training a non-motorized retailcart, the system comprising: a portable training object configured torecord and store coordinate data related to the shape and extent of aconfinement area of a retail environment; a transmitter configured toprovide a signal indicative of a reference direction; a receiverpositioned on a non-motorized cart, the receiver configured to receivethe signal indicative of the reference direction; a navigation systempositioned on the non-motorized cart and in communication with thereceiver, the navigation system configured to receive the coordinatedata and the reference direction, the navigation system also configuredto calculate a position and heading of the non-motorized cart based atleast in part on the coordinate data and the reference direction; amovement inhibition system on the non-motorized cart, the movementinhibition system configured to inhibit movement of the non-motorizedcart in response to an inhibition signal from the navigation system, theinhibition signal provided when a theft condition is satisfied.
 26. Thesystem of claim 25, wherein the theft condition is satisfied when thenon-motorized cart is outside the confinement area.
 27. The system ofclaim 25, wherein the training object comprises a second non-motorizedcart.
 28. The system of claim 25, wherein the training object comprisesa hand-held device.
 29. The system of claim 25, wherein thenon-motorized cart comprises a shopping cart.
 30. The system of claim25, wherein the movement inhibition system comprises a brake configuredto inhibit rotation of a wheel of the non-motorized cart.
 31. The systemof claim 25, wherein the navigation system is further configured tobegin calculating the position of the non-motorized cart in response toreceipt of a start navigation signal.
 32. The system of claim 25,wherein the transmitter comprises a magnetic marker.
 33. The system ofclaim 25, wherein the confinement area defines a retail store andassociated parking lot.